Peut-être trop simple question à poser, mais j'ai besoin d'aide.Impossible d'appeler la procédure stockée Oracle et la fonction
Je crée une procédure stockée dans Oracle 10g, mais je ne peux pas l'appeler. J'utilise 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;
analyser à la fois ne donne pas de message d'erreur. J'ai utilisé la syntaxe suivante pour les appeler:
BEGIN
check_login('admin', 'admin');
END;
ET
EXECUTE check_login('admin', 'admin');
Je reçois ce message d'erreur ....
PLS-00221: 'check_login' est pas une procédure ou est indéfini
PL/SQL: déclaration ignorée
L'instruction SELECT dans les deux fonctionne correctement si elle est exécutée directement.
Est-ce que je fais quelque chose de mal?
Merci Joseph! Cela a fonctionné. réduire les trois lignes à une seule ligne pour pouvoir l'appeler à partir du code PHP sur une ligne en utilisant ** oci_execute() **? –
Le deuxième bloc que vous avez mentionné, fonctionne mais affiche uniquement ** bloc anonyme terminé **. Ne renvoie pas de valeur. –