【发布时间】:2013-08-01 12:36:22
【问题描述】:
我有这张桌子
CREATE TABLE "TB_JOB_LOG"
(
"CODIGO" NUMBER,
"DESCRIPCION" VARCHAR2(200 BYTE),
"FECHA" DATE
)
我有这个存储过程
CREATE OR replace PROCEDURE Dummy_test(
v_mes IN NUMBER DEFAULT NULL,
v_anho IN NUMBER DEFAULT NULL,
cv_1 IN OUT SYS_REFCURSOR)
AS
BEGIN
OPEN cv_1 FOR
SELECT codigo,
fecha
FROM tb_job_log
WHERE codigo > 5
AND codigo < 10;
END dummy_test;
我想用这个其他存储过程从 dummy_test 获取结果
CREATE OR replace PROCEDURE Job_fill_ce
IS
cc SYS_REFCURSOR;
l tb_job_log%ROWTYPE;
BEGIN
Dummy_test(NULL, NULL, cc);
LOOP
FETCH cc INTO l;
exit WHEN cc%NOTFOUND;
dbms_output.Put_line(l.codigo);
END LOOP;
CLOSE cc;
END job_fill_ce;
但是当我执行job_fill_ce时出现这个错误
ORA-06504: PL/SQL: Return types of Result Set variables or query do not match
ORA-06512: en "JOB_FILL_CE", line 7
ORA-06512: en line 2
我错过了什么吗?
【问题讨论】:
-
检查此SO Solution 以了解类似问题,您仅从 SP 返回 2 列,并且您将
l变量设置为table%rowtype,它可以有超过 2 列
标签: sql oracle stored-procedures oracle-sqldeveloper