Impossible d'appeler la procédure stockée oracle et la fonction
Peut-être trop simple question à poser, mais j'ai besoin d'aide.
Je suis en création d'une procédure stockée Oracle 10g, mais je ne peut pas l'appeler. Je suis à l'aide de SQL Developer pour gérer la base de données.
CREATE OR REPLACE
FUNCTION check_login
(username IN VARCHAR2, pwd IN VARCHAR2)
RETURN VARCHAR2
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
return isUserValid;
END;
J'ai essayé aussi:
CREATE OR REPLACE
PROCEDURE check_login
(username IN VARCHAR2, pwd IN VARCHAR2, RESULT OUT INTEGER)
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
RESULT := isUserValid;
END;
L'analyse des deux ne donne aucun message d'erreur. J'ai utilisé la syntaxe suivante pour les appeler:
BEGIN
check_login('admin', 'admin');
END;
ET
EXECUTE check_login('admin', 'admin');
J'obtiens ce message d'erreur....
PLS-00221: 'CHECK_LOGIN" n'est pas une procédure ou n'est pas défini
PL/SQL: Déclaration ignoré
L'instruction SELECT à l'intérieur des deux fonctionne très bien si l'exécuter directement.
Je fais quelque chose de mal?
source d'informationauteur kush.impetus
Vous devez vous connecter pour publier un commentaire.
Si vous voulez exécuter une fonction que vous avez à recueillir la valeur de retour dans une variable.
Si vous avez besoin de définir une variable et d'exécuter la fonction de retour dans la variable ci-dessous
et de l'exécuter à l'aide de la exécuter le Script option de ne pas le Instruction d'Exécuter option.
Ou si vous le faites de plsql
- Je trouver la façon la plus simple d'appeler une fonction est la sélection de la fonction de double eg-
Note le message d'erreur dit "Non procédure' :).