【发布时间】:2018-03-23 18:04:22
【问题描述】:
我有一个使用临时表的查询,我想将它添加到存储过程中。但是在编译时我得到“错误(10,1):PLS-00428:这个SELECT语句中应该有一个INTO子句”
举例
WITH T1 as
(
SELECT ID, CREATED_DATE, LOOKUP_ID
FROM TEST1
),T2 as
(
SELECT ID, CREATED_DATE, LOOKUP_ID
FROM TEST2
)
SELECT * from T1
minus
SELECT * from T2
RESULTS
ID CREATED_D LOOKUP_ID
---------- --------- ----------
217322 11-DEC-16 1
作为存储过程添加:
create or replace PROCEDURE "TEST"
(
T IN OUT SYS_REFCURSOR
) AS
BEGIN
WITH T1 as
(
SELECT ID, CREATED_DATE, LOOKUP_ID
FROM TEST1
), T2 as
(
SELECT ID, CREATED_DATE, LOOKUP_ID
FROM TEST2
)
SELECT * from T1
minus
SELECT * from T2
end;
END;
错误(7,1):PLS-00428:此 SELECT 语句中需要一个 INTO 子句
我确实看到了 PLS-00428: an INTO clause is expected in this SELECT statement 但它正在使用 INSERTS,我不想这样做。我只想使用临时表。
【问题讨论】:
-
你真的应该缩进。
-
我缩进了...你现在看到你的问题了吗?
-
应始终将所选列读入 PL/SQL 变量,然后使用 DBMS_OUTPUT.PUT_LINE 打印。从过程或函数执行时,不会自动显示查询结果。