循环、复合类型


DECLARE
     m INT:=1;
     n INT:=1;
BEGIN
     LOOP
       dbms_output.put_line('第'||m||'天');
       m:=m+1;
       while(n<=7)
       LOOP
         dbms_output.put_line('今天第'||n||'次相亲!');
         n:=n+1;
         END LOOP;
         n:=1;
         EXIT WHEN m>7;
       END LOOP;
END;
-----打印99乘法表----------------------------------------------
DECLARE
     i INT:=1;
     j INT:=1;
BEGIN
     LOOP
       while(j<=i)
       LOOP
         dbms_output.put(j||'*'||i||'='||i*j||' ');
         j:=j+1;
         END LOOP;
          dbms_output.new_line();
         j:=1;
         EXIT WHEN i>8;
           i:=i+1;
       END LOOP;        
END;
-----可变数组(varray)--------------------------------------------------
DECLARE
     TYPE myArray IS VARRAY(5) OF VARCHAR2(10);
     
     zhang myArray:=myArray('你','呀','我','呀','呵');
BEGIN

     dbms_output.put_line(zhang(1)); 
     dbms_output.put_line(zhang(2)); 
     dbms_output.put_line(zhang(3)); 
     dbms_output.put_line(zhang(4)); 
     dbms_output.put_line(zhang(5)); 
     dbms_output.put_line(zhang(1)); 
END;
------(table)---------------------------------------------------
DECLARE
     TYPE myArray IS TABLE OF VARCHAR2(10) INDEX BY Binary_Integer;--
     
     zhang myArray;
BEGIN

     zhang(1):='hello';
     dbms_output.put_line(zhang(1)); 

END;
--table变量的长度是可变的,下标可以不连续;

-------(record类型)----------------------------------------------------------------
DECLARE
     TYPE myRecord IS RECORD(
          ID INT,
          NAME VARCHAR2(10),
          address VARCHAR(10)
     );
     zhang myRecord;
     
BEGIN
     SELECT stuNo,stuName,address INTO zhang.ID,zhang.NAME,zhang.address FROM Student WHERE stuNO=1001;

     dbms_output.put_line(zhang.id); 
     dbms_output.put_line(zhang.name); 
     dbms_output.put_line(zhang.address); 

END;
-------(练习、求数组中的最大值)---------------------------------------
DECLARE
     TYPE myArray IS VARRAY(10) OF INT;
     
     zhang myArray:=myArray(12,32,12,54,76,84,54,76,98,90);
     i INT :=2;
     maxNum INT :=zhang(1);
     
BEGIN
  
     LOOP
       IF maxNum<zhang(i) THEN
         maxNum:=zhang(i);
         END IF;

       i:=i+1;
       dbms_output.put_line('i是'||i);
       EXIT WHEN i>=10;
     END LOOP;
     
     dbms_output.put_line('最大值是'||maxNum);

END;
-------(根据用户输入的数据修改数据内容   1001)-----(动态执行SQL语句)-----------------------------------------











 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值