加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 保留字NUMBER用作列名,导致Cursor声明错误

发布时间:2021-01-13 07:03:42 所属栏目:站长百科 来源:网络整理
导读:……至少我以为那是题目地址. 我正在编写一个函数,个中包括一个会见表的游标声明,个中一列是保存字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

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读