在 Oracle SQL Developer 中恢复未保存的 SQL 查询脚本
Posted
技术标签:
【中文标题】在 Oracle SQL Developer 中恢复未保存的 SQL 查询脚本【英文标题】:Recover unsaved SQL query Scripts in Oracle SQL Developer 【发布时间】:2015-01-07 18:42:51 【问题描述】:感谢这段巧妙的代码,我知道如何在 SQL Server 中执行此操作
Use <database>
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script]
FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC
来源: Recover unsaved SQL query scripts
有没有办法在 Oracle SQL Developer 中做到这一点?
【问题讨论】:
select * from v$sql
ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: Error at Line: 1 Column: 14
显然您缺少必要的权限
检查 SQL Developer 历史记录可能也是值得的。在我的版本 4.0.3.16 中:从菜单中是 View --> SQL History 或快捷键 F8
@Matt 不错,很高兴它成功了!
【参考方案1】:
如果你有权限,那么:
SELECT * FROM v$sql
如果没有,请按 F8 以显示以前运行的查询列表。
【讨论】:
此解决方案和所有其他解决方案将仅提供您运行的select
语句。例如,将找不到任何其他命令 alter
【参考方案2】:
This 救了我好几次。
丢失未保存的代码确实是个问题。大约一个 一个月我一直在做一个大程序,忘记保存 SVN中的代码。如果你读过这篇文章并记得有这样未保存的代码, 立即提交! :) 因为一切都可能发生在你的身上 测试分贝。好的。如果您使用的是 Oracle SQL Developer,那么您很幸运, 因为这个程序有一个很棒的特性——它把你的代码保存在它的 sql 历史尽管吃了一大堆 RAM。打开你的文件 资源管理器并找到此文件夹:
C:\Users\%USERNAME%\AppData\Roaming\SQL Developer\SqlHistory
你会发现很多 XML 文件,如果运气好的话,你会发现 你丢失的代码。太棒了。 :) 。如果您正在使用其他程序, 尝试找到这样的功能,也许它可以帮助你。节哀顺变 如果这篇文章对你没有帮助,无论如何,试着找到一些好的东西 其中下一个:1)再次编写代码,它会比 之前你做过一次 2)提交你的代码,所以你不会面对这样的 未来的问题
【讨论】:
今天这个为我节省了很多重做工作。谢谢! 我认为此历史记录与使用 Alberto Cerqueira 在“查看 -> SQL 历史记录”(F8 键盘快捷键)上方显示的步骤通过 GUI 访问的历史记录相同。【参考方案3】:你也可以试试,这样可以得到未保存的SQL。
View > SQL History,例如看这张图:
【讨论】:
【参考方案4】:这是使用 SQLDeveloper 的历史记录,就像在 Matt 的回答中一样,但是如果您想在历史记录文件中搜索您记得的特定查询片段,它们位于 /home/username/.sqldeveloper/SqlHistory
中的 .xml 文件中。从那里输入:
find -type f -mtime -1 -print0 | xargs -0 grep -l <text>
(其中-mtime -1
表示不早于一天前)。
【讨论】:
以上是关于在 Oracle SQL Developer 中恢复未保存的 SQL 查询脚本的主要内容,如果未能解决你的问题,请参考以下文章
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题