【发布时间】:2016-02-26 17:38:36
【问题描述】:
在 Tsql 中,我可以在查询分析器中执行存储过程,并在查询分析器窗口中查看结果集的内容,而无需了解查询结构(表、列等)
--Tsql 示例 执行 myproc parm1, parm2, parm3
现在我正在使用 PLsql 和 Toad(我对 Toad 比较陌生)。我需要查看一个复杂的存储过程的结果集的内容,而且我不知道列的数量是多少——更不用说它们的数据类型了(这个过程由几个奇怪的子查询组成——我可以单独查看,但它们会被旋转,并且最终结果集中的列数会有所不同)。当我不知道有多少列或它们的数据类型时,当我执行该过程时,如何在 Toad 中查看此结果集的内容?
下面是我收集的代码,用于查看存储过程结果集的内容,我提前知道有多少列及其数据类型。在下面的代码示例中,我使用了一个名为 x_out 的 sys_refcursor,并且我还创建了一个临时表来存储结果集的内容以供进一步查看。当我不知道结果集中有多少列时,有没有办法可以做到这一点?如何使用 PLsql -- Toad 做到这一点?
create global temporary table tmpResult (fld1 number, fld2 varchar(50), fld3 date);
declare
x_out sys_refcursor;
tmpfld1 number;
tmpfld2 varchar2(50);
tmpfld3 date;
BEGIN
myschema.mypkg.myproc(parm1, parm2, x_out);
LOOP
FETCH x_out INTO tmpfld1, tmpfld2, tmpfld3;
DBMS_OUTPUT.Put_Line ('fld1:-- '||tmpfld1||': fld2:-- '||tmpfld2||': fld3:-- '||tmpfld3);
-- I also insert the result set to a temp table for additional viewing of the data from the stored procedure
Insert Into tmpResult values(tmpfld1, tmpfld2, tmpfld3);
EXIT WHEN x_out%NOTFOUND;
END LOOP;
END;
【问题讨论】:
-
什么版本的 Toad?
标签: stored-procedures plsql toad