gpt4 book ai didi

sql - 如何检索以前的sql命令

转载 作者:行者123 更新时间:2023-12-04 14:33:15 26 4
gpt4 key购买 nike

想问一下如何在该 session 中检索我过去的所有数据库 sql 查询?谢谢

最佳答案

我很确定 Oracle 不会为每个 session 保留所有过去查询(关闭的游标)的数据。不过,我可以想出几种方法来获取这些数据:

  • 如果您使用的是 PL/SQL,您过去的大部分游标将保留在您的 session 缓存中(直到 cursor_sharing 初始化参数)。可以查询 View v$open_cursor :

    SELECT * FROM v$open_cursor WHERE sid=to_number(sys_context('USERENV','SID'))

    将此 View 加入v$sqltext(或v$sqltext_with_newlines)以获得完整的sql文本:

     SELECT o.saddr, s.address, o.hash_value, s.piece, s.sql_text
    FROM v$open_cursor o
    JOIN v$sqltext_with_newlines s ON o.address = s.address
    AND o.hash_value = s.hash_value
    WHERE sid = to_number(sys_context('USERENV', 'SID'))
    ORDER BY o.saddr, s.address, o.hash_value, s.piece;
  • 您可以跟踪您的 session ,在 session 终止后打开生成的跟踪文件将显示所有 SQL(此外,您可以 tkprof 跟踪文件以获得摘要和统计信息)。

关于sql - 如何检索以前的sql命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com