Как я могу исправить ошибку, чтобы назначить значение переменной в Oracle - PullRequest
0 голосов
/ 22 февраля 2019

У меня была ошибка, когда я пытался создать процедуру для отображения данных. Вот ошибка:

PLS-00103: Обнаружен символ "(" при ожидании одного из следующего:: =.), @% символ по умолчанию Символ ": =" был заменен на "(" для продолжения.

Вот мой код:

CREATE OR REPLACE PROCEDURE spemp94_display(
p_hireyear VARCHAR2(4),
c_emp94 OUT SYS_REFCURSOR)
IS
BEGIN
p_hireyear := '1994';
OPEN c_emp94 FOR
    SELECT last_name, hire_date
    FROM employees
    WHERE TO_CHAR(hire_date, 'yyyy') = p_hireyear;
END;

1 Ответ

0 голосов
/ 22 февраля 2019

Ошибка в определении этого параметра

p_hireyear VARCHAR2(4)

Не разрешается определять размер переменной при определении аргументов процедуры.

Просто измените ее на

p_hireyear VARCHAR2

Кроме того, поскольку p_hireyear является параметром IN (по умолчанию, если явно не указано IN или OUT), вы не можете присвоить ему значение.

Вы могли быreceive

PLS-00363: выражение 'P_HIREYEAR' нельзя использовать в качестве цели назначения

Оно должно быть назначено при передаче аргументов процедуры.

declare cur SYS_REFCURSOR;
BEGIN
 spemp94_display('1994',cur); -- specify the value here not inside the procedure.
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...