我必须调试包含一些SQL查询的存储过程。其中一个包含错误。所以,我需要在其他窗口中使用参数执行此SQL查询。我发现下一个查询可以帮助我:
select v.SQL_TEXT
from v$sql v
不幸的是,这个领域受到1Kb的限制。在我的情况下,我有相当大的SQL查询,Oracle截断它。如何记录执行的查询?我使用PL / SQL Developer 10和Oracle 9i
答案 0 :(得分:2)
不幸的是,这个字段受到1Kb的限制
如果您需要完整的SQL,请使用 SQL_FULLTEXT ,这是一种CLOB数据类型,而不是SQL_TEXT
,其限制为前1000个字符。
Column Datatype Description
------ -------------- ---------------------------------------
SQL_TEXT VARCHAR2(1000) First thousand characters of the SQL
text for the current cursor
SQL_FULLTEXT CLOB Full text for the SQL statement exposed
as a CLOB column. The full text of a SQL
statement can be retrieved using this
column instead of joining with the
V$SQL_TEXT dynamic performance view.
所以,请使用:
SELECT SQL_FULLTEXT FROM v$sql;
顺便说一句,您似乎正在寻找跟踪会话以获取过程和所涉及的SQL语句的完整详细信息。我建议使用级别4 跟踪会话,即添加绑定变量值。
请参阅How to generate trace file – SQL Trace and TKPROF in Oracle