J'utilise un formulaire D2k 6i et récupère l'erreur sur le formulaire de la procédure de base de données stockée (oracle9i) ORA-00001: Contrainte unique (.) violé mais je ne suis pas capable de retracer de quelle procédure il s'agit. Quelqu'un peut-il m'aider à ce sujetComment trouver le numéro de ligne, nom de la procédure en PL/SQL en cas d'erreur
Répondre
L'affichage de votre exception avec votre question nous donnerait une meilleure idée de ce à quoi vous êtes confronté.
Généralement, une exception vous indique le package et le numéro de ligne dans le message d'erreur. A partir de cela, vous pouvez interroger la table USER_SOURCE:
SELECT text
FROM user_source
WHERE type = 'PACKAGE BODY'
AND name = 'myProcName'
AND line = [the line number];
Il pourrait être utile de savoir plus sur le contexte dans lequel l'erreur a été déclenchée. Pour cela, vous pouvez utiliser le `ENTRE » opérateur:
SELECT text
FROM user_source
WHERE type = 'PACKAGE BODY'
AND name = 'myProcName'
AND line BETWEEN [the line number - 5] AND [the line number +5];
Pour la postérité, voici la solution OP trouvée:
ok sous forme d2k il y a un déclencheur SI ERREUR où vous pouvez utiliser la fonction DBMS_ERROR_TEXT pour obtenir la procédure, ligne de nom du package numéro de la déclaration d'où l'erreur vient
Je suis venu dans ce modèle après beaucoup de recherches, se cogner la tête et des grincements de dents:
CREATE OR REPLACE PACKAGE BODY my_schema.package_name
IS
PROCEDURE foo
IS
BEGIN
-- Call stored procedures/functions that throw unhandled exceptions
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR! - '
|| DBMS_UTILITY.FORMAT_ERROR_STACK
|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END foo;
END;
La fonction DBMS_UTILITY.FORMAT_ERROR_STACK
semble donner le code d'erreur et le message et DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
semble donner une honnête trace de la pile de bonté, avec les numéros de ligne et les noms des procédures stockées dans Oracle 10g au moins.
Je ne suis pas sûr si ces fonctions sont disponibles dans Oracle 9i. Je ne pouvais pas trouver beaucoup d'informations sur ce genre de chose, même pour Oracle 10g, alors j'ai pensé que je publierais au moins cette réponse car 9i est assez vieux (et donc 10g d'ailleurs).
- 1. Numéro de ligne de procédure stockée SQL Server numéro
- 2. Comment trouver mois pas, le nom du numéro de la semaine en utilisant php
- 3. Comment obtenir le nom de fichier et le numéro de ligne en Perl?
- 4. Comment obtenir le numéro de ligne en utilisant le scanner
- 5. Comment enregistrer le nom du fichier source et le numéro de ligne en Python
- 6. Déterminez le nom de la méthode à partir du numéro de ligne en Java?
- 7. Comment puis-je lire un contenu en ligne de fichier en utilisant le numéro de ligne
- 8. django en ligne numéro
- 9. Comment trouver le nom exact de la vue dans asp.net mvc (y compris le cas)
- 10. Textarea numéro de ligne en utilisant jQuery
- 11. nom de fichier et numéro de ligne du script python
- 12. Comment trouver le numéro de ligne dans lequel se termine la fonction dans le fichier Ruby?
- 13. Comment trouver les valeurs de crête/numéro de ligne?
- 14. Trouver le nombre de fois que la procédure est appelée en utilisant une autre procédure
- 15. GCC préprocesseur pour le nom de la méthode en ligne
- 16. Comment obtenir le numéro de ligne?
- 17. Trouver le numéro de page en cours dans Wordpress
- 18. Comment enregistrer le nom du fichier/ligne qui a appelé la fonction en cours en PHP?
- 19. Définition de la clause "Order By" à partir des paramètres de la procédure plsql
- 20. INSERT à l'intérieur de la procédure plsql n'indique pas le nombre de lignes insérées
- 21. Trouvez le numéro dans la ligne. Javascript
- 22. Exécuter MySQL procédure stockée en utilisant la ligne de commande
- 23. Obtenir le numéro de ligne jsp réel à partir d'un numéro de ligne de trace de la pile?
- 24. comment changer la valeur d'un nom selon le cas
- 25. Comment écrire une requête qui génère le numéro de ligne en tant que colonne?
- 26. trouver le nom de classe
- 27. Fonction PHP: trouver le nom de variable de l'argument, et les appels de fonction numéro de ligne
- 28. Un déclencheur peut-il trouver le nom de la procédure stockée ayant modifié les données?
- 29. as2: __FILE__ équivalent en flash (comment trouver le nom de fichier de l'application en cours)
- 30. Comment trouver le nom actuel du test en cours d'exécution?
En fait, je voulais trouver le nom de la procédure et le numéro de ligne à partir de laquelle l'erreur est à venir. La requête fournie par vous n'est utile que lorsque vous connaissez le nom de la procédure. – bhagwat
Merci j'ai eu la réponse – bhagwat
@bhagwat - si vous avez trouvé une réponse, postez-la ici à SO. Soyez un enseignant aussi bien qu'étudiant. – APC