Les procédures stockées Oracle sont des objets de base de données précompilés qui peuvent être exécutés à plusieurs reprises. Afin d'optimiser les performances de la base de données et de gagner du temps, de nombreux développeurs utilisent des procédures stockées. Mais lorsqu’une erreur survient dans une procédure stockée, le débogage peut devenir délicat. Cet article présentera quelques conseils et méthodes pour déboguer les procédures stockées dans Oracle.
1. Définissez l'indicateur de débogage de la procédure stockée
Pour commencer le débogage de la procédure stockée, vous devez d'abord définir l'indicateur de débogage dans le code. Oracle fournit un package appelé DBMS_DEBUG dans lequel les indicateurs de débogage sont définis. La méthode spécifique est :
- Connectez-vous à la base de données Oracle :
sqlplus / as sysdba
- Créez le package DBMS_DEBUG :
SQL> Besoin d'un débogageToutes les procédures stockéesPar :
- SQL> CONNECT myuser;
Démarrer le mode de débogage :
- SQL> EXECUTE DBMS_DEBUG_JDWP.CONNECT_TCP('localhost', '4000'); est le port de débogage Java .
Définissez l'indicateur de débogage et démarrez le débogage :
SQL> EXECUTE DBMS_DEBUG_JDWP.SET_BREAKPOINT('schema.package.procedure', 'procedure',1);
- où schéma est le schéma où se trouve la procédure stockée, et package est la procédure stockée. Dans le package où elle se trouve, procédure est le nom de la procédure stockée et 1 est le numéro de ligne où le débogage doit être défini.
2. Débogage à distance des procédures stockées
Avant de déboguer les procédures stockées à distance, vous devez d'abord configurer un débogueur Java localement (tel qu'Eclipse ou IntelliJ IDEA). Suivez ensuite les étapes ci-dessous pour définir l'indicateur de débogage à distance dans Oracle :
Démarrez la procédure stockée dans Oracle
Démarrez le mode débogage dans le débogueur Java local
Connectez-vous au débogueur Java local dans le package DBMS_DEBUG dans Oracle : -
- SQL> EXECUTE DBMS_DEBUG_JDWP.CONNECT_TCP('localhost','4000′);
- Définissez un point d'arrêt dans le processus SET_BREAKPOINT du package DBMS_DEBUG :
SQL> INT('sch ema.package.procedure ', 'procédure',1);
- Démarrer le mode de débogage dans le débogueur Java local
Terminer le mode de débogage à distance dans le package DBMS_DEBUG qui informe Oracle :
- SQL> EXECUTE DBMS_DEBUG_JDWP.DISCONNECT;
- 3. débogueur
En plus de définir manuellement les indicateurs de débogage, vous pouvez également utiliser le débogueur dans Oracle. Le débogueur simplifie le processus de débogage et le rend plus intuitif.
Ouvrir PL/SQL Developer
Ouvrez le code source de la procédure stockée qui doit être déboguée
Cliquez avec le bouton droit sur la ligne qui doit être déboguée et sélectionnez "Toggle Breakpoint" pour définir un point d'arrêt- Cliquez sur " Outils" -> "Débogage" -> "Compiler en tant que débogage"
- Cliquez sur "Déboguer" -> "Démarrer le débogage"
- Exécutez les opérations qui doivent être déboguées avant que la procédure stockée ne soit appelée
- Lorsque la procédure stockée atteint un point d'arrêt, le débogueur interrompra automatiquement l'exécution de la procédure stockée
- Vous pouvez utiliser les contrôles du débogueur pour parcourir le débogage, afficher les variables, etc.
- Une fois le débogage terminé, cliquez sur "Déboguer" -> Débogage" pour terminer le débogage
-
- 4. Utilisez les options de journalisation ou de débogage
- Utilisez les options de journalisation ou de débogage dans la procédure stockée pour suivre facilement le flux d'exécution et les données de la procédure stockée. Vous pouvez utiliser le package DBMS_OUTPUT pour générer des messages dans une procédure stockée ou utiliser les options de débogage.
DBMS_OUTPUT :
L'utilisation du package DBMS_OUTPUT dans une procédure stockée permet d'afficher des messages lors de l'exécution de la procédure stockée. L'exemple de code est le suivant :
CREATE OR REPLACE PROCEDURE my_procedure IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
Options de débogage :
Les options de débogage sont définies à l'aide de l'instruction PRAGMA dans le fichier stocké. procédure. L'exemple de code est le suivant :
CREATE OR REPLACE PROCEDURE my_procedure IS
v_debug BOOLEAN := TRUE;
v_message VARCHAR2(100);
BEGIN
IF v_debug THEN
v_message := 'Starting my_procedure';
DBMS_OUTPUT.PUT_LINE(v_message);
END IF;
...
END;
Ce qui précède se trouve dans Quelques conseils et méthodes pour déboguer les procédures stockées dans Oracle. Grâce à ces méthodes, vous pouvez déboguer les procédures stockées plus efficacement et les accélérer. Si vous devez gérer des procédures stockées dans Oracle pendant une longue période, il est fortement recommandé de maîtriser ces techniques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!