Невозможно вызвать хранимую процедуру и функцию Oracle.

Вопрос, наверное, слишком простой, но мне нужна помощь.

Я создаю хранимую процедуру в Oracle 10g, но не могу ее вызвать. Я использую SQL Developer для управления базой данных.

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;

Я тоже пробовал это:

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;

Анализ обоих не выдает сообщений об ошибках. Я использовал следующий синтаксис для их вызова:

BEGIN 
  check_login('admin', 'admin'); 
END;

И

EXECUTE check_login('admin', 'admin');

Я получаю это сообщение об ошибке ....

PLS-00221: 'CHECK_LOGIN' не является процедурой или не определен
PL / SQL: Оператор игнорируется

Оператор SELECT внутри обоих работает нормально, если выполняется напрямую.

Я что-то делаю не так?

16
задан Ollie 13 October 2011 в 07:07
поделиться