2017-08-12 1 views
1

Je travaille sur un projet web dynamique et utilise PreparedStatement pour exécuter les requêtes SQL sur la base de données DB2. Comment puis-je recevoir la requête SQL complète qui va être exécutée sur le serveur DB2 de la console?Comment obtenir la requête complète qu'un PreparedStatement est sur le point d'exécuter dans DB2?

+0

dépend du pilote, cela peut ou peut ne pas fonctionner. essayez 'stmt.toString()'. il n'y a pas de support natif pour cela. 'PreparedStatement' est une interface et ne nécessite pas l'implémentation d'une telle fonctionnalité. – user2914191

+0

Si vous ne réussissez pas à java, discutez avec votre administrateur de base de données qui peut demander à DB2 de rapporter le code SQL dynamique et les valeurs des variables de marqueurs de paramètres. Le mécanisme utilisé par le DBA dépendra du système d'exploitation sur lequel le serveur DB2 fonctionne (Z/OS, i-series, Linux/Unix/Windows) ainsi que de la version DB2. – mao

Répondre

0

Si vous connaissez les options de débogage dans Eclipse. Vous pouvez essayer ce qui suit:

  1. Définir un point d'arrêt à ResultSet resultSet = statement.executeQuery();

  2. clic droit de votre application, sélectionnez Java Application dire Debug As (ou quel que soit applicable dans votre cas par exemple peut être SpringBoot App etc.

  3. Effectuez l'étape qui vous mène au code mentionné dans la question

  4. Si vous cochez Variables tab dans Debug Perspective d'Eclipse, vous trouverez des variables telles que myQuery, stmt (selon votre code)

  5. Tout ce que vous voyez comme valeur de stmt serait la pleine requête SQL dont vous avez besoin.

De plus, si vous ne voulez pas continuer à regarder cette variable toujours, vous pouvez essayer Java Logging et imprimer votre requête SQL complète dans les journaux.

+0

Merci rdj7 pour la solution, je essayé les étapes ci-dessus et maintenant peut voir les résultats attendus. – chimbu

+0

Grand @chimbu !! – rdj7