我有一个EXECUTE IMMEDIATE
用于执行查询的 PL/SQL 语句。但是,我很难弄清楚如何获取正在执行的查询的文本。我不能使用dbms_output
,因为查询大于 255 个字符。有没有办法让 sqlplus 回显传入的字符串EXECUTE IMMEDIATE
?
问问题
3764 次
4 回答
3
您使用的是什么版本的 Oracle?255 是DBMS_OUTPUT.PUT_LINE().
10g 之前的默认行长,我们可以在一次调用中显示 1048 个字符。从那以后它是32K。
或者,您应该考虑使用支持 DBMS_DEBUG 的 IDE。例如,SQL Developer 就是这样做的,而且它是从 Oracle 中免费获得的。 了解更多。
于 2009-11-05T17:00:10.973 回答
0
如何一次打印大字符串 N 个字符。修改以满足您的需求。
FOR i IN 0..10 LOOP
dbms_output.put_line(substr(my_very_long_string,i*100+1,100));
END LOOP;
于 2009-11-05T19:21:03.497 回答
0
您可以将字符串插入日志记录/临时表并检查它。
于 2009-11-06T18:54:26.267 回答
0
您可以尝试将探查器附加到数据库(老实说,我只为 SqlServer 完成了该操作)并运行该过程,因为探查器将显示对数据库进行的任何查询,您将能够在那里获取它并进行必要的调试。希望能帮助到你..
于 2009-11-05T17:01:39.060 回答