Я запускаю разработчика Oracle SQL, и у меня есть следующая Хранимая процедура. Я совсем новичок в этом, но на самом деле не знаю, почему это не работает:Почему эта базовая хранимая процедура «Select Into» не работает?
CREATE OR REPLACE PROCEDURE CHECKDUPLICATE(
username1 IN USERS.USERNAME%TYPE,
o_username OUT USERS.USERNAME%TYPE
)
IS
BEGIN
SELECT USERNAME
INTO o_username
FROM USERS WHERE username1 = o_username;
END;
Когда я пытаюсь вызвать его:
DECLARE
o_username USERS.USERNAME%TYPE;
BEGIN
CHECKDUPLICATE('Jacklin', o_username);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
END;
Я получаю сообщение об ошибке:
Error starting at line 1 in command:
DECLARE
o_username USERS.USERNAME%TYPE;
BEGIN
CHECKDUPLICATE(Jacklin, o_username);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
END;
Error report:
ORA-06550: line 5, column 19:
PLS-00201: identifier 'JACKLIN' must be declared
ORA-06550: line 5, column 4:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Что означает «Идентификатор« Джеклин »должен быть объявлен? (Таблица называется USERS, а имя столбца называется USERNAME). Любая помощь будет принята.
EDIT ** Я положил Jacklin в кавычки, и я получаю это сообщение прямо сейчас:
Error report:
ORA-01403: no data found
ORA-06512: at "L13JAV04.CHECKDUPLICATE", line 9
ORA-06512: at line 6
01403. 00000 - "no data found"
*Cause:
*Action:
Несмотря на то, Jacklin существует ли он в базе данных!
Джеклин - это строка. Должен быть заключен в одинарные кавычки – Noel
Спасибо! Но теперь я получаю еще одно сообщение об ошибке.Сообщение об ошибке: ORA-01403: нет данных не найдено ORA-06512: на "L13JAV04.CHECKDUPLICATE", строка 9 ORA-06512: в строке 6 01403. 00000 - "Нет данных" * Причина: * Действие : – DeaIss
Я отредактировал его в своем первоначальном вопросе для более удобного чтения – DeaIss