Oracle - 记录执行的查询

时间:2015-07-07 01:25:30

标签: oracle plsql

我必须调试包含一些SQL查询的存储过程。其中一个包含错误。所以,我需要在其他窗口中使用参数执行此SQL查询。我发现下一个查询可以帮助我:

select v.SQL_TEXT
from v$sql v

不幸的是,这个领域受到1Kb的限制。在我的情况下,我有相当大的SQL查询,Oracle截断它。如何记录执行的查询?我使用PL / SQL Developer 10和Oracle 9i

1 个答案:

答案 0 :(得分:2)

  

不幸的是,这个字段受到1Kb的限制

如果您需要完整的SQL,请使用 SQL_FULLTEXT ,这是一种CLOB数据类型,而不是SQL_TEXT,其限制为前1000个字符。

来自documentation

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