Puede ser una pregunta demasiado simple, pero necesito ayuda.No se puede llamar al procedimiento almacenado de Oracle y a la función
Estoy creando un procedimiento almacenado en Oracle 10g, pero no puedo llamarlo. Estoy usando SQL Developer para administrar la base de datos.
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;
He intentado esto también:
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;
Analizar tanto no da ningún mensaje de error. Usé siguiente sintaxis para llamar a ellos:
BEGIN
check_login('admin', 'admin');
END;
Y
EXECUTE check_login('admin', 'admin');
me sale este mensaje de error ....
PLS-00221: 'CHECK_LOGIN' no es un procedimiento o no está definido
PL/SQL: instrucción ignorada
La instrucción SELECT dentro de ambos funciona bien si se ejecuta directamente.
¿Estoy haciendo algo mal?
Gracias Joseph! Eso funcionó. Ahora, cómo reducir las tres líneas a una sola línea para que se pueda invocar desde el código PHP en una línea usando ** oci_execute() **? –
El segundo bloque que mencionaste, funciona pero solo muestra ** bloque anónimo completado **. No devuelve un valor –