Y at-il un moyen d'obtenir la requête Oracle de PreparedStatement. Je sais que ce n'est pas possible en tant que tel je ne peux pas utiliser log4jdbc ou p6spy car il s'agit d'une application sécurisée Ne travaillez pas comme j'utilise Oracle? Je ne peux pas non plus modifier PreparedStatement en Statement.Requête de PreparedStatement
Répondre
Si seulement besoin de temps de débogage, vous pouvez utiliser DebuggableStatement suivre cette article
Je ne pense pas que vous devriez le faire de cette façon, car il n'y a pas d'API officiellement documenté pour cela.
Si vous pouvez jouer avec le code, pourquoi ne pouvez-vous pas utiliser log4jdbc? Oracle JDBC aussi supports java.util.logging, que vous pourriez essayer d'activer.
Si vous êtes uniquement intéressé par le SQL lui-même, vous pouvez activer le suivi de session sur le serveur Oracle.
Ou peut-être vous pouvez mettre votre code à l'endroit où l'instruction est préparée (en utilisant quelque chose comme @pinichi suggère)?
Mais juste pour le plaisir, farfouillé avec le débogueur, avec ma version d'Oracle JDBC, je peux faire
if (stmt instanceof oracle.jdbc.driver.OraclePreparedStatement) {
String x = ((oracle.jdbc.driver.OraclePreparedStatement) stmt)
.getOriginalSql();
System.out.println(x);
}
Cela ne fonctionne pas au moins avec Oracle 10g, imprime toujours le? – dchucks
Quel est le problème avec l'impression du "?" ? C'est la requête qu'Oracle voit (avec peut-être? Remplacé par: 1). Qu'espériez-vous d'autre? – Thilo
Ummm comme la question d'origine je m'attends à ce que le SQL modifié (? Remplacé par l'ensemble de paramètres) autrement appeler toString() sur PreparedStatement aurait suffi. – dchucks
Si vous voulez simplement vérifier instruction SQL, vous pouvez également accéder directement à la base de données et le contrôle v$sql
tableau.
Ici vous pouvez trouver tous les sqls et d'autres informations sur la requête. Plus d'infos: http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2113.htm
- 1. PreparedStatement setNull (..)
- 2. Réutilisation d'un PreparedStatement
- 3. Impossible d'utiliser une requête LIKE dans un PreparedStatement JDBC?
- 4. En Java, comment PreparedStatement fonctionne pour la requête suivante
- 5. Impression d'une requête SQL dans PreparedStatement dans oracle.jdbc.driver.OraclePreparedStatement
- 6. ResultSet vide après l'exécution PreparedStatement
- 7. Comment fonctionne PreparedStatement de Java?
- 8. PreparedStatement alternative au sein de l'APP?
- 9. Java PreparedStatement Syntaxe
- 10. PreparedStatement avec Statement.RETURN_GENERATED_KEYS
- 11. PreparedStatement jette MySQLSyntaxErrorException
- 12. PreparedStatement ne pas retourner ordonné ResultSet
- 13. Quels personnages seront PreparedStatement échapper?
- 14. Problèmes avec Date, preparedStatement, JDBC et PostgreSQL
- 15. Informix JDBC PreparedStatement MISE À JOUR Multiset
- 16. PreparedStatement et setTimestamp dans l'oracle jdbc
- 17. Liaison d'une variable nulle dans un PreparedStatement
- 18. JDBC, MySQL: revenir données de ligne de PreparedStatement exécute
- 19. A Java PreparedStatement avec un paramètre setBigDecimal soulève ORA-03115
- 20. Utilisation de la mise en pool PreparedStatement dans dbcp
- 21. Comment obtenir le nombre de lots dans preparedstatement?
- 22. java insérer des caractères spéciaux avec PreparedStatement ne
- 23. Comment puis-je définir l'option IDENTITY_INSERT pour un PreparedStatement JDBC?
- 24. Comment associer une ArrayList à PreparedStatement dans Oracle?
- 25. Java, PreparedStatement, TransactSQL (MS SQL), dernier identifiant d'insertion
- 26. Comment gérer les valeurs null (peut-être) dans un PreparedStatement?
- 27. L'utilisation d'un PreparedStatement pour persister un tableau de Java énumérations à un tableau de Postgres énumérations
- 28. Comment obtenir les valeurs des paramètres de liaison à partir de l'objet Oracle JDBC PreparedStatement
- 29. Query ne fonctionne pas avec un marqueur de paramètre avec PreparedStatement
- 30. Une erreur très très étrange ClassCastException. La méthode setInt de PreparedStatement
Si vous ne pouvez pas modifier le code et ne pas mettre à jour la configuration pour utiliser log4jdbc, comment allez-vous accéder aux instructions préparées? – Thilo