0
數據我有此表從存儲過程中獲取在Oracle
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解決方案](http://stackoverflow.com/a/5822771/125551)類似的問題,你只返回來自SP的2列,你將'l'變量設置爲'table%rowtype'可以有超過2列 –