我在桌子上有一个名字chandreshkumar nareshbhai.我想将其更新为chandresh naresh
是否可以在Oracle中使用正则表达式?
可能重复:
PL/SQL中的函数和过程有什么区别?
函数总是返回一个值,但是当我们在一个过程中使用'out'时,过程也会返回一个值,所以请告诉我什么时候应该编写一个函数,什么时候应该编写一个过程?我们决定使用程序或功能的标准是什么?
我有一个Java生产者线程,每隔n毫秒从Oracle表中提取项目.当前实现依赖于Java时间戳来检索数据,而不再重新检索它们.
我的目标是摆脱时间戳模式,并直接更新我从数据库中提取的相同项目.
有没有办法选择一组项目并同时更新它们以将它们标记为"正在处理"?
如果没有,依赖于IN子句的单独UPDATE查询是否会成为主要的性能影响?为此尝试使用临时表,但我发现性能受到严重影响.
不知道它是否有帮助,但应用程序正在使用iBatis.
我有两个带有"循环"外键的现有表,即表中的表A引用PK,B反之亦然.
现在,我想在两个表中插入行.行具有引用另一个表中当前添加的值的列,因此会发生错误.
如何填写彼此引用的两个表?用Oracle PL/SQL.
我有一个传递给过程的表变量.我想使用where子句中的值,如下所示,我该怎么做.下面的第一行是在包定义中声明的.以下过程在包体中.
type CatalogNos is table of VARCHAR2(100);
PROCEDURE GET_PART_CHARACTERISTICS (v_catalog_nos_ IN CatalogNos,
Parts_Char_Cursor out sys_refcursor) AS
BEGIN
OPEN Parts_Char_Cursor FOR
SELECT * FROM IFSAPP.SALES_PART_CHARACTERISTIC
WHERE CATALOG_NO IN (select values from v_catalog_nos_);
END GET_PART_CHARACTERISTICS;
Run Code Online (Sandbox Code Playgroud) 在Oracle PL/SQL中,我需要编写一个可能抛出自定义异常的存储过程,并且必须从调用此存储过程的某个匿名过程中捕获此异常(仅此一个).怎么实现呢?
我正在尝试在Oracle 11g上运行此代码,它在下面给出了错误.我似乎无法做对.
DECLARE
CURSOR bookcursor IS
SELECT btName, BookCopy.Isbn, pubName, dateDestroyed
FROM booktitle bt
JOIN publisher p
ON bt.pubId = p.pubId
JOIN bookcopy bc
ON bt.Isbn = bc.Isbn
WHERE datedestroyed IS NULL
;
bookcursorrec bookcursor%ROWTYPE;
BEGIN
OPEN bookcursor;
LOOP
FETCH bookcursor INTO bookcursorrer;
EXIT WHEN bookcursor%NOTFOUND;
dbms_output.put_line( 'ISBN: ' ||bookcursorrec.isbn
|| ' - Book Name: ' || bookcursorrec.btname
|| ' - Publisher: ' || bookcursorrec.pubname );
END LOOP;
CLOSE bookcursor;
END;
ERROR at line 3:
ORA-06550: line 3, column 20: …Run Code Online (Sandbox Code Playgroud) 想知道决定在Java Class/EJB中转换PLSQL的选项可能是什么决定点/因素.
PLSQL中实现了大量的业务逻辑,前端是PowerBuilder.
现在,为了使应用程序支持Web,应用程序正在使用Struts Framework迁移到Java/J2EE.
是否有必要将PLSQL与用户界面一起迁移,特别是当RDBMS继续在Oracle上并且PL/SQL上有专业知识时.
做出选择时需要考虑哪些因素?
我试图用批量插入或其他更有效的方法解决这段代码,但我没有想法.你会怎么解决这个问题.而不是循环这么多次我想在几次调用中更有效.请告诉我你会怎么做?尽可能使用代码!感谢名单
LOOP
-- Fetch a row
IF DBMS_SQL.FETCH_ROWS(cursor_handle) > 0 THEN
DBMS_SQL.column_value(cursor_handle, 9, cont_id);
DBMS_SQL.COLUMN_VALUE(cursor_handle, 3, proj_nr);
HTP.BOLD('ContractID: ' || cont_id || ' ProjectNR: ' || proj_nr);
HTP.BR;
ELSE
EXIT;
END IF;
-- delete the old list before saving a new one
IF sek_nr = 1 THEN
EXECUTE IMMEDIATE 'DELETE FROM W_Contracts WHERE user_id = :n' USING CURRENTUSER;
END IF;
EXECUTE IMMEDIATE 'Insert into W_Contracts values(''' || currentUser || ''', '
|| sek_nr || ', sysdate, ' || cont_id || …Run Code Online (Sandbox Code Playgroud) 在执行此查询时,我遇到错误:
*错误报告:
ORA-06502:PL/SQL:数字或值错误
ORA-06512:第34行
06502. 00000 - "PL/SQL:数字或值错误%s"*
.
我的oracle版本是:
Oracle9i企业版9.2.0.1.0版 - 生产
PL/SQL版本9.2.0.1.0 - 生产
请帮帮我..问候,
DECLARE CURSOR c1 is SELECT TABLE_NAME FROM All_Tables WHERE TABLE_NAME NOT LIKE '%$%' AND Owner NOT IN ('WMSYS', 'EXFSYS', 'CTXSYS', 'WKSYS', 'SYSMAN', 'SYSTEM', 'FLOWS_030000', 'MDSYS', 'ORDSYS', 'DBSNMP', 'XDB', 'OLAPSYS');
col_names SYS_REFCURSOR; TYPE dat_res IS RECORD(tab_name VARCHAR2(1000),col_name VARCHAR2(1000));
TYPE dr is table of dat_res;
act_dat dr:= dr();
status NUMBER := 0;
cnt NUMBER := 1;
sql_stmt VARCHAR2(10000);
tab_name1 VARCHAR2(100);
col_name1 VARCHAR2(100);
BEGIN …Run Code Online (Sandbox Code Playgroud)