Appel d'une procédure stockée dans une autre dans Oracle
Problème :
Il est possible de appeler une procédure stockée depuis une autre dans Oracle ? Si oui, comment pouvez-vous y parvenir ?
Exemple de code :
SET SERVEROUTPUT ON; DROP PROCEDURE test_sp_1; DROP PROCEDURE test_sp; CREATE PROCEDURE test_sp AS BEGIN DBMS_OUTPUT.PUT_LINE('Test works'); END; / CREATE PROCEDURE test_sp_1 AS BEGIN DBMS_OUTPUT.PUT_LINE('Testing'); test_sp; END; / CALL test_sp_1;
Solution :
Le code de test fourni crée et initialise avec succès les procédures stockées. Cependant, le problème réside dans la dernière ligne, qui tente d'invoquer les procédures mais échoue.
Il existe trois façons d'invoquer des procédures stockées dans SQL*Plus :
CALL test_sp_1();
BEGIN test_sp_1; END; /
EXEC test_sp_1
Exemple :
SQL> CALL test_sp_1(); Testing Test works Call completed. SQL> EXEC test_sp_1 Testing Test works PL/SQL procedure successfully completed. SQL> BEGIN 2 test_sp_1; 3 END; 4 / Testing Test works PL/SQL procedure successfully completed.
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!