--建测试表
DROP TABLE CXY_CCGC_TEST2_T;
CREATE TABLE CXY_CCGC_TEST2_T(
id VARCHAR2(32),
content CLOB ,
like_time DATE DEFAULT SYSDATE
);
--插表数据
declare
begin
for i in 1..3 loop
insert into CXY_CCGC_TEST2_T values(SYS_GUID (),'测试',sysdate);
end loop;
end;
select * from CXY_CCGC_TEST2_T;
--建存储过程
CREATE OR REPLACE PROCEDURE CXY_CCGC_TEST5_P
AS
i NUMBER;
cursor datas is
select * from CXY_CCGC_TEST2_T;--非常简单的一个测试表
BEGIN
--loop循环
DBMS_OUTPUT.put_line('=============================================loop');
i := 0;
loop
i := i + 1;
--if 比较式 then begin end; end if;
if i > 3 then
exit;
end if;
DBMS_OUTPUT.put_line('loop循环第' || i || '次循环');
end loop;
--while循环
/*
while 条件语句 LOOP
begin
--执行语句
end;
end LOOP;
*/
DBMS_OUTPUT.put_line('=============================================while');
i := 0;
while i < 3 loop
i := i + 1;
DBMS_OUTPUT.put_line('while循环第' || i || '次循环');
end loop;
--for循环
/*
For ... in ... LOOP
--执行语句
end LOOP;
*/
DBMS_OUTPUT.put_line('=============================================for');
for i in 6..9 loop
DBMS_OUTPUT.put_line('for循环第' || i || '次循环');
end loop;
--循环遍历游标
for dat in datas loop
DBMS_OUTPUT.put_line('for循环 cursor遍历:' || dat.id);
end loop;
DBMS_OUTPUT.put_line('=============================================END');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('sqlcode : ' || sqlcode);
DBMS_OUTPUT.put_line('sqlerrm : ' || sqlerrm);
ROLLBACK;
END CXY_CCGC_TEST5_P;
--调用
BEGIN
CXY_CCGC_TEST5_P();
END;
调用该存储过程输出如下:
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充!