一、不带参数的游标for循环
首先编写存储过程的整体结构,如下:
create or replace procedure test_proc isv_date date; --变量定义beginselect sysdate into v_date from dual;end test_proc;
定义游标:
create or replace procedure test_proc isv_date date; --定义变量cursor cur is select * from ldcode; --定义游标beginselect sysdate into v_date from dual;end test_proc;
编写for循环:
create or replace procedure test_proc isv_date date; --定义变量cursor cur is select * from ldcode where rownum<10; --定义游标beginselect sysdate into v_date from dual;--游标for循环开始for temp in cur loop --temp为临时变量名,自己任意起Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。end loop;--游标for循环结束end test_proc;
测试运行,点击【DBMS Output】标签页查看结果如下图:
二、带参数的游标for循环
定义带参数的游标:
cursor cur(v_codetype ldcode.Codetype%TYPE) isselect * from ldcode where codetype = v_codetype; --定义游标
定义游标格式:
cursor 游标名称(变量定义) is 查询语句;
注意:
where条件中的变量名v_codetype要与游标定义cur(v_codetype ldcode.Codetype%TYPE)中的一致。
编写for循环部分:
--游标for循环开始
for temp in cur('llmedfeetype') loop--temp为临时变量名,自己任意起--cur('llmedfeetype')为"游标名称(传入的变量)"Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。end loop;
--游标for循环结束
测试运行,点击【DBMS Output】标签页查看结果如下图: