0

我正在尝试在 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;
4

1 回答 1

2

SQL Navigator 确实有能力为您做到这一点。如何做到这一点完全取决于您的 Navigator 版本,并且可以想象(尽管我不知道)某些版本可能没有它。

说明可以在这个线程中找到:http ://sqlnavigator.inside.quest.com/thread.jspa?threadID=2466

顺便说一句,蟾蜍也有这种能力。

于 2012-04-20T17:25:40.983 回答