【发布时间】:2017-08-16 04:49:30
【问题描述】:
为什么会出现此错误?如果变量声明与列的类型相同,则不应该这样做。 Nursing_unit_id 是一个 varchar2(10)。当 ID 是 NUMBER 时,它对我来说就像这样;
我得到的错误: 错误报告 - ORA-06550:第 13 行,第 13 列: PLS-00201:必须声明标识符“ISS”
SET SERVEROUTPUT ON;
DECLARE
v_unit ADMISSIONS.NURSING_UNIT_ID%TYPE := &v_unit;
v_admissions ADMISSIONS%ROWTYPE;
CURSOR c_admissions IS
SELECT *
INTO v_admissions
FROM ADMISSIONS
WHERE NURSING_UNIT_ID = v_unit;
BEGIN
FOR r_admissions IN c_admissions
LOOP
DBMS_OUTPUT.PUT_LINE(r_admissions );
END LOOP;
END;
【问题讨论】:
-
ISS 是我为护理单元 ID 输入的用户输入
-
这不是正确的 CURSOR 语法。您声明游标,然后在 BEGIN 之后您 OPEN、FETCH 和 CLOSE 游标。此外,为您的绑定变量 (&v_unit) 赋予与您的 valriable 不同的名称。另外,我认为您不能将 ROWTYPE 变量传递给 DBMS_OUTPUT.put_line() - 它需要一个文本参数