oracle – 保留字NUMBER用作列名,导致Cursor声明错误
发布时间:2021-01-12 16:55:09 所属栏目:站长百科 来源:网络整理
导读:……至少我认为那是问题所在. 我正在编写一个函数,其中包含一个访问表的游标声明,其中一列是保留字NUMBER(是的,我知道..).该函数在编译时遇到问题: 错误(16,10):PL / SQL:ORA-06552:PL / SQL:编译单元分析终止ORA-06553:PLS-488:无效变量声明:对象’
|
……至少我认为那是问题所在. 我正在编写一个函数,其中包含一个访问表的游标声明,其中一列是保留字NUMBER(是的,我知道..).该函数在编译时遇到问题: 错误(16,10):PL / SQL:ORA-06552:PL / SQL:编译单元分析终止ORA-06553:PLS-488:无效变量声明:对象’NUMBER’必须是类型或子类型 我的代码看起来像: CURSOR my_cur
IS
SELECT "NUMBER",col2,col3
FROM tb1_x;
为了确保这是问题,我将代码更改为 CURSOR my_cur
IS
SELECT 'NUMBER','col2','col3'
FROM dual;
它汇编得很好,但显然这不是我想要的. 不幸的是,我没有选择更改列名(叹气)和记录 SELECT "NUMBER",col3
FROM tb1_x;
在正常的SQL执行中正常工作. 无论如何,我可以解决这个问题?任何帮助深表感谢! 解决方法我们也可以在游标中创建记录以及使用列.从游标中获取数据我对我感到惊讶,因为我之前使用过它.Create table temp2("number" integer,id integer,name varchar2(200));
insert into temp2 values(1,1,'Gaurav Soni');
insert into temp2 values(2,2,'Niharika Saraf');
Commit;
DECLARE
type abc is record(
"number" number,id NUMBER,name varchar2(200));
v_rec abc;
TYPE v_cur IS REF CURSOR;
cur v_cur;
v_temp INTEGER;
BEGIN
OPEN cur FOR
SELECT "number",id,name FROM temp2;
LOOP
FETCH cur INTO v_rec;
EXIT when cur%notfound;
DBMS_OUTPUT.put_line('number is ' || v_rec."number");
DBMS_OUTPUT.put_line('id is ' || v_rec.id);
DBMS_OUTPUT.put_line('name is ' || v_rec.name);
end loop;
CLOSE cur;
end;
产量 number is 1 id is 1 name is Gaurav Soni number is 2 id is 2 name is Niharika Saraf (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

