版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 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语句)-----------------------------------------