1

我有一个EXECUTE IMMEDIATE用于执行查询的 PL/SQL 语句。但是,我很难弄清楚如何获取正在执行的查询的文本。我不能使用dbms_output,因为查询大于 255 个字符。有没有办法让 sqlplus 回显传入的字符串EXECUTE IMMEDIATE

4

4 回答 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 回答