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