LightDB数据库——非保留关键字SERIAL功能增强

     在oracle的PL/SQL里,serial关键字可以作为变量名并使用。本次LightDB数据库对serial做了功能增强,支持在PL/SQL里可以作为变量名并使用。

普通赋值使用

DECLARE

serial varchar;

begin

dbms_output.serveroutput(true);

 serial :=left('abc',2);

 DBMS_OUTPUT.PUT_LINE(serial);

end;

/

DECLARE

   serial varchar(20);

   company varchar(30);

   introduction varchar;

   choice char(1);

BEGIN

   dbms_output.serveroutput(true);

   serial := 'John Smith';

   company := 'Infotech';

   introduction := ' Hello! I''m John Smith from Infotech.';

   choice := 'y';

   IF choice = 'y' THEN

       DBMS_OUTPUT.PUT_LINE(serial);

       DBMS_OUTPUT.PUT_LINE(company);

       DBMS_OUTPUT.PUT_LINE(introduction);

   END IF;

END;

/

混合复合使用

循环

DECLARE

   serial number(1);

   j number(1);

BEGIN

  dbms_output.serveroutput(true);

   << outer_loop >>

   FOR serial IN 1..3 LOOP

      << inner_loop >>

      FOR j IN 1..3 LOOP

        DBMS_OUTPUT.PUT_LINE(('serial is: '|| serial || ' and j is: ' || j));

      END loop inner_loop;

   END loop outer_loop;

END;

/

数组

DECLARE

   type namesarray IS VARRAY(5) OF VARCHAR(10);

   type grades IS VARRAY(5) OF INTEGER;

   serial namesarray;

   marks grades;

   total integer;

BEGIN

   dbms_output.serveroutput(true);

   serial := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');

   marks:= grades(98, 97, 78, 87, 92);

   total := serial.count;

   DBMS_OUTPUT.PUT_LINE('Total '|| total || ' Students');

   FOR i in 1 .. total LOOP

      DBMS_OUTPUT.PUT_LINE('Student: ' || serial(i) || '    Marks: ' || marks(i));

   END LOOP;

END;

/

DECLARE

   type serial IS VARRAY(5) OF VARCHAR(10);

   type grades IS VARRAY(5) OF INTEGER;

   a serial;

   marks grades;

   total integer;

BEGIN

   dbms_output.serveroutput(true);

   a := serial('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');

   marks:= grades(98, 97, 78, 87, 92);

   total := a.count;

   DBMS_OUTPUT.PUT_LINE('Total '|| total || ' Students');

   FOR i in 1 .. total LOOP

      DBMS_OUTPUT.PUT_LINE('Student: ' || a(i) || '    Marks: ' || marks(i));

   END LOOP;

END;

/

游标

create table  caofa_customers(

  id serial PRIMARY key,

  n varchar,

  age number,

  SALARY number

);

insert into  caofa_customers(n,age,salary) values('Ramesh',32,500);

DECLARE  

   serial number(2);

BEGIN

   dbms_output.serveroutput(true);

   UPDATE  caofa_customers

   SET salary = salary + 500;

   IF sql%notfound THEN

       DBMS_OUTPUT.PUT_LINE('no  caofa_customers selected');

   ELSIF sql%found THEN

      serial := sql%rowcount;

       DBMS_OUTPUT.PUT_LINE( serial || '  caofa_customers selected ');

   END IF;  

END;

/  

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值