我有 Oracle 程序,它的工作与以下相同:
create or replace
PROCEDURE My_TEST_PROCEDURE
(
cur out sys_refcursor
)
AS
BEGIN
open cur for
SELECT * FROM MYTABLE1
WHERE MYTABLE1.SOMEROWNAME NOT IN
(SELECT SOMEROWNAME FROM MYTABLE2);
END My_TEST_PROCEDURE;
但这两张表中的数据很多,每张大约有 300000 行。所以需要很长时间才能完成。我能做些什么来减少那段时间。我尝试声明一个 sys_refcursor 并将数据读入此游标,如下所示:
create or replace
PROCEDURE My_TEST_PROCEDURE
(
cur out sys_refcursor
)
IS
DECLARE EXISTING_ITEMS SYS_REFCURSOR;
BEGIN
OPEN EXISTING_ITEMS FOR
SELECT SOMEROWNAME FROM MYTABLE2;
open cur for
SELECT * FROM MYTABLE1
WHERE MYTABLE1.SOMEROWNAME NOT IN
EXISTING_ITEMS;
END My_TEST_PROCEDURE;
但这一次发生了 ORA-00932 错误。我能做些什么?
提前致谢。