web-dev-qa-db-fra.com

Récupérer des scripts de requête SQL non enregistrés dans Oracle SQL Developer

Je sais comment faire cela dans SQL Server grâce à ce morceau de code intelligent

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: récupérer les scripts de requête SQL non enregistrés

Existe-t-il un moyen de le faire dans Oracle SQL Developer?

17
Matt

Si vous avez les privilèges, alors:

SELECT * FROM v$sql

Sinon, appuyez sur F8 pour afficher une liste des requêtes précédemment exécutées.

38
Matt

This a sauvé mes fesses plusieurs fois.

Salut les gars, c'est vraiment un problème lorsque vous perdez du code non enregistré. Depuis environ un mois, je travaille sur une grosse procédure et j'ai oublié d'enregistrer le code dans SVN. Si vous lisez ceci et que vous vous souvenez avoir un tel code non enregistré, engagez-le immédiatement! :) Parce que tout pourrait arriver avec votre base de données de test. D'accord. vous avez de la chance si vous utilisiez Oracle SQL Developer, car ce programme a une excellente fonctionnalité - il enregistre votre code dans son historique sql malgré la consommation d'une grande partie de votre RAM. Ouvrez votre explorateur de fichiers et recherchez ce dossier:

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

Vous trouverez beaucoup de fichiers xml, et si vous avez deux fois de la chance, vous trouverez votre code perdu. C'est merveilleux. :). Si vous utilisez un autre programme, essayez de trouver une fonctionnalité comme celle-ci et peut-être que cela vous aidera. Mes condoléances si cet article ne vous aide pas, en tout cas, essayez de trouver quelque chose de bien parmi les suivants: 1) réécrivez votre code, et ce sera mieux qu'avant comme vous l'avez fait une fois 2) validez votre code, donc vous ne rencontrerez pas un tel problème à l'avenir

31
mmmmmpie

Vous pouvez également essayer, afin d'obtenir le code SQL non enregistré.

Affichage> Historique SQL , par exemple, regardez cette image: enter image description here

9
Alberto Cerqueira

Cela utilise l'historique de SQLDeveloper, comme dans la réponse de Matt, mais si vous souhaitez rechercher dans les fichiers d'historique des fragments de requête spécifiques dont vous vous souvenez, ils se trouvent sous forme de fichiers .xml dans /home/username/.sqldeveloper/SqlHistory. De là, entrez:

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

(où -mtime -1 signifie au plus tôt un jour).

3
Stephen C