如何检索游标的sql文本?

McA*_*hey 5 oracle cursor

如果我有游标并且想在执行期间记录游标的文本,是否可以通过某种方式使用游标名称并检索SQL?

例如,

OPEN cursor_1 for 
    SELECT ...
Run Code Online (Sandbox Code Playgroud)

我想相信我可以做cursor_1%NAME很多事情,就像可以使用游标的其他属性一样。(%ISOPEN,%FOUND等)。

Sat*_*hat 5

AFAIK,无法将游标名称链接到要解析的SQL文本,但是V$open_cursorv$sqlusing 一起使用SQL_ID,您应该能够拉出并记录那些打开的游标所记录的SQL语句的详细信息。

SELECT sql_id,
       user_name,
       sid,
       saddrsql_fulltext
FROM   v$sql
       join v$open_cursor USING (sql_id) 
Run Code Online (Sandbox Code Playgroud)

也许您可以将SQL文本与光标相关联,但这将是一个手动过程