Maison > base de données > tutoriel mysql > Une procédure stockée Oracle peut-elle en appeler une autre ?

Une procédure stockée Oracle peut-elle en appeler une autre ?

Linda Hamilton
Libérer: 2024-12-25 04:15:09
original
960 Les gens l'ont consulté

Can One Oracle Stored Procedure Call Another?

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;
Copier après la connexion

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 :

  1. APPEL : Nécessite des parenthèses, même pour les procédures sans arguments.
CALL test_sp_1();
Copier après la connexion
  1. Bloc PL/SQL anonyme : Permet l'exécution en ligne du code.
BEGIN
    test_sp_1;
END;
/
Copier après la connexion
  1. EXEC : Une commande SQL*Plus qui est un raccourci pour un utilisateur anonyme bloquer.
EXEC test_sp_1
Copier après la connexion

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.
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal