Może to być zbyt proste pytanie, ale potrzebuję pomocy.Nie można połączyć się z przechowywaną procedurą i funkcją oracle
Tworzę procedurę przechowywaną w Oracle 10g, ale nie mogę jej nazwać. Używam programisty SQL do zarządzania bazą danych.
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;
Próbowałem to również:
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;
analizowania zarówno nie daje żadnej komunikat o błędzie. Użyłem następującej składni, aby zadzwonić do nich:
BEGIN
check_login('admin', 'admin');
END;
I
EXECUTE check_login('admin', 'admin');
otrzymuję komunikat o błędzie ....
PLS-00221: 'CHECK_LOGIN' nie jest procedura lub jest niezdefiniowany
PL/SQL: Instrukcja ignorowana
Instrukcja SELECT w obu wersjach działa poprawnie, jeśli jest uruchamiana bezpośrednio.
Czy robię coś nie tak?
Dzięki Joseph! To działało. Teraz, jak zmniejszyć trzy linie tylko do jednej linii, aby można było wywołać ją z kodu PHP w jednym wierszu za pomocą ** oci_execute() **? –
Drugi blok, o którym wspomniałeś, działa, ale wyświetla tylko ** zamknięty anonimowy blok **. Nie zwraca wartości. –