Potrebbe essere una domanda troppo semplice da chiedere, ma ho bisogno di aiuto.Impossibile chiamare la stored procedure di Oracle e la funzione
Sto creando una procedura memorizzata in Oracle 10g, ma non posso chiamarla. Sto usando SQL Developer per gestire il database.
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;
ho provato anche questo:
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;
Analisi sia non dare alcun messaggio di errore. Ho usato seguente sintassi per chiamarli:
BEGIN
check_login('admin', 'admin');
END;
E
EXECUTE check_login('admin', 'admin');
ricevo questo messaggio di errore ....
PLS-00221: 'CHECK_LOGIN' non è una procedura o non è definito
PL/SQL: Dichiarazione ignorata
L'istruzione SELECT all'interno di entrambi funziona bene se eseguita direttamente.
Sto facendo qualcosa di sbagliato?
Grazie Giuseppe! Ha funzionato. Ora, come rimpicciolire le tre linee su una sola linea in modo che possa essere chiamata dal codice PHP in una riga usando ** oci_execute() **? –
Il secondo blocco che hai menzionato, funziona ma visualizza solo ** blocco anonimo completato **. Non restituisce un valore. –