Comment appeler une fonction sql ABC définie dans le package de DEF à l'aide de CRAPAUD ORACLE
J'ai Package Oracle nommé DEF , avec 1 fonction à l'intérieur d'nommée ABC qui acceptent 1 argument de type chaîne.
Je sais comment appeler cette fonction ABC directement dans le CRAPAUD de l'Éditeur?
Merci d'avance.
CREATE OR REPLACE PACKAGE HPQ_IF.def AS
FUNCTION def(p_sql IN VARCHAR2)
RETURN VARCHAR2;
END def;
/
FUNCTION abc(p_sql IN VARCHAR2)
RETURN VARCHAR2
IS
j NUMBER;
BEGIN
dbms_output.put_line(p_sql);
RETURN 'Done';
END abc;
Dernière erreur (en utilisant d'abord la réponse ci-dessous):
[Error] Execution (6: 31): ORA-06550: line 6, column 31:
PLS-00302: component 'abc' must be declared
ORA-06550: line 6, column 3:
PL/SQL: Statement ignored
- Il semble que vous avez changé la fonction et les noms de paquets. Mais je soupçonne que vous avez fait une erreur. La fonction doit être appelée abc, et pas seulement dans le corps mais dans la déclaration. Veuillez poster le package complet d'en-tête et l'ensemble du corps. Si vous modifiez le nom, puis la première à corriger toutes les erreurs afin de l'en-tête et le corps compiler avec succès.
Vous devez vous connecter pour publier un commentaire.
Dans le TOAD SQL tampon:
Si vous ne voulez pas faire n'importe quoi avec la valeur de retour autre que l'affichage de l'information:
Cependant, pour une fonction PL/SQL en SQL (SELECT, INSERT, etc), il doit être libre de certains effets secondaires (ie. il ne peut pas modifier certains types de l'état dans la base de données). D'être appelé comme une colonne dans un SELECT, il ne doit pas modifier la base de données (insertion ou de mise à jour, par exemple), d'effectuer DDL, ou de valider une transaction.
Vous pouvez également utiliser Exécuter la Procédure à partir de l'intérieur du Schéma Navigateur.
Une fonction renvoie une valeur, de sorte que vous devez retourner le résultat quelque part.
Vous pouvez appeler la fonction à partir d'une instruction SQL
Ou vous pouvez retourner le résultat dans une variable locale dans PL/sQL