web-dev-qa-db-ja.com

Oracle SQL Developerで保存されていないSQLクエリスクリプトを回復する

この賢いコードのおかげで、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

SOURCE: 未保存のSQLクエリスクリプトを回復する

Oracle SQL Developerでこれを行う方法はありますか?

17
Matt

特権がある場合:

SELECT * FROM v$sql

そうでない場合は押します F8 以前に実行したクエリのリストを表示します。

38
Matt

これ は私の尻を数回保存しました。

こんにちは、未保存のコードを失うと本当に問題になります。約1か月間、私は大きな手順に取り組んでおり、コードをSVNに保存するのを忘れていました。これを読んで、そのような保存されていないコードがあることを覚えているなら、すぐにコミットしてください! :)すべてがテストデータベースで発生する可能性があるため。 OK。 Oracle SQL Developerを使用していた場合、このプログラムには優れた機能があります。RAMを大量に消費しても、SQL履歴にコードが保存されるため、幸運です。ファイルエクスプローラーを開き、次のフォルダーを見つけます。

C:\ Users \%USERNAME%\ AppData\Roaming\SQL Developer\SqlHistory

多くのxmlファイルがあります。2回運が良ければ、失われたコードを見つけることができます。素晴らしいです。 :)。別のプログラムを使用している場合は、このような機能を見つけてみてください。この投稿が役に立たない場合は、次のいずれかで良いものを見つけてみてください:1)コードをもう一度書いてください将来このような問題に直面することはないでしょう

31
mmmmmpie

試すこともできるので、保存されていないSQLを取得できます。

表示>履歴SQL、たとえば、次の図を参照してください: enter image description here

9

これは、Mattの答えのようにSQLDeveloperの履歴を使用していますが、覚えている特定のクエリフラグメントの履歴ファイルを検索する場合、/home/username/.sqldeveloper/SqlHistoryに.xmlファイルとして配置されます。そこから、次を入力します。

find -type f -mtime -1 -print0 | xargs -0 grep -l <text>

-mtime -1は1日前より前を意味します)。

3
Stephen C