标签: plsql

是否可以在Oracle中使用正则表达式?

我在桌子上有一个名字chandreshkumar nareshbhai.我想将其更新为chandresh naresh

是否可以在Oracle中使用正则表达式?

regex oracle plsql

1
推荐指数
1
解决办法
565
查看次数

PL/SQL中函数和过程之间的区别

可能重复:
PL/SQL中的函数和过程有什么区别?

函数总是返回一个值,但是当我们在一个过程中使用'out'时,过程也会返回一个值,所以请告诉我什么时候应该编写一个函数,什么时候应该编写一个过程?我们决定使用程序或功能的标准是什么?

oracle plsql

1
推荐指数
1
解决办法
1万
查看次数

在同一PL/SQL查询中选择并更新

我有一个Java生产者线程,每隔n毫秒从Oracle表中提取项目.当前实现依赖于Java时间戳来检索数据,而不再重新检索它们.

我的目标是摆脱时间戳模式,并直接更新我从数据库中提取的相同项目.

有没有办法选择一组项目并同时更新它们以将它们标记为"正在处理"?

如果没有,依赖于IN子句的单独UPDATE查询是否会成为主要的性能影响?为此尝试使用临时表,但我发现性能受到严重影响.

不知道它是否有帮助,但应用程序正在使用iBatis.

java oracle multithreading plsql ibatis

1
推荐指数
1
解决办法
881
查看次数

两个表中的外键

我有两个带有"循环"外键的现有表,即表中的表A引用PK,B反之亦然.

现在,我想在两个表中插入行.行具有引用另一个表中当前添加的值的列,因此会发生错误.

如何填写彼此引用的两个表?用Oracle PL/SQL.

sql oracle plsql

1
推荐指数
2
解决办法
1161
查看次数

PL/SQL在Where子句中使用表变量

我有一个传递给过程的表变量.我想使用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 plsql user-defined-types

1
推荐指数
1
解决办法
1万
查看次数

处理存储过程的异常处理

在Oracle PL/SQL中,我需要编写一个可能抛出自定义异常的存储过程,并且必须从调用此存储过程的某个匿名过程中捕获此异常(仅此一个).怎么实现呢?

sql oracle plsql exception-handling

1
推荐指数
1
解决办法
983
查看次数

Oracle 11g - 运行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)

sql oracle plsql cursor oracle11g

1
推荐指数
1
解决办法
2万
查看次数

选择将Oracle PL/SQL迁移到Java类/ EJB

想知道决定在Java Class/EJB中转换PLSQL的选项可能是什么决定点/因素.

PLSQL中实现了大量的业务逻辑,前端是PowerBuilder.

现在,为了使应用程序支持Web,应用程序正在使用Struts Framework迁移到Java/J2EE.

是否有必要将PLSQL与用户界面一起迁移,特别是当RDBMS继续在Oracle上并且PL/SQL上有专业知识时.

做出选择时需要考虑哪些因素?

java oracle plsql ejb

1
推荐指数
1
解决办法
2824
查看次数

在PLSQL中批量插入而不是循环?

我试图用批量插入或其他更有效的方法解决这段代码,但我没有想法.你会怎么解决这个问题.而不是循环这么多次我想在几次调用中更有效.请告诉我你会怎么做?尽可能使用代码!感谢名单

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)

plsql bulkinsert cursor oracle11g

1
推荐指数
1
解决办法
675
查看次数

PL SQL数字或值错误

在执行此查询时,我遇到错误:

*错误报告:
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)

oracle plsql

1
推荐指数
1
解决办法
1万
查看次数