我正在尝试在Oracle中调用存储过程并显示调用的结果,问题是它在行FETCH v_cur into v_a;
上崩溃并出现错误:ORA-06504: PL/SQL: Return types of Result Set variables or query do not match.
我猜查询的输出与v_a VARCHAR2(100)
不匹配,但我不知道该放什么。被调用的存储过程会连接多个表,并选择属于不同表的20多个不同的列。所以我想要的是只查看查询的输出而不必分别引用每个结果列。我该怎么做呢?
我正在使用SQL Navigator(我猜不是那么重要)。
DECLARE
v_cur SYS_REFCURSOR;
v_a VARCHAR2(100);
BEGIN
pkg_get_results.get_rows(v_cur,to_date('2012/04/12', 'yyyy/mm/dd'),to_date('2012/04/12', 'yyyy/mm/dd'), '','','','');
LOOP
FETCH v_cur into v_a; -- what to put here ?
EXIT WHEN v_cur%NOTFOUND;
dbms_output.put_line(v_a );
END LOOP;
CLOSE v_cur;
END;
答案 0 :(得分:2)
SQL Navigator确实能够为您执行此操作。如何做到完全取决于您的Navigator版本,并且可以想象(虽然我不知道)某些版本可能没有它。
可在此主题中找到说明:http://sqlnavigator.inside.quest.com/thread.jspa?threadID=2466
顺便说一下,蟾蜍也有这种能力。