循环、复合类型

版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 https://blog.csdn.net/qian_qian_123/article/details/82941956

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语句)-----------------------------------------











猜你喜欢

转载自blog.csdn.net/qian_qian_123/article/details/82941956