尝试创建显示数据的过程时出现错误 这是错误:
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;
答案 0 :(得分:1)
该参数定义中有错误
p_hireyear VARCHAR2(4)
在定义过程参数时,不允许定义变量的大小。
只需将其更改为
p_hireyear VARCHAR2
此外,由于p_hireyear
是一个IN
参数(如果未明确指定IN
或OUT
则为默认值),因此您无法为其分配值。 / p>
您会收到
PLS-00363:表达式'P_HIREYEAR'不能用作赋值 目标
它应该在传递过程参数时分配。
declare cur SYS_REFCURSOR;
BEGIN
spemp94_display('1994',cur); -- specify the value here not inside the procedure.
END;
/