PLSQL游标(含带参数)

本文详细介绍了PLSQL中游标的使用,包括无参数游标、带参数游标以及系统引用游标。通过示例展示了如何声明、打开、遍历和关闭游标,并利用游标进行数据处理,如查询、更新等操作。
摘要由CSDN通过智能技术生成
declare
   -- 创建一个游标
  cursor emps is select * from emp;
  -- 声明一个变量记录数据
  em emp%rowtype;
  begin
    -- 打开游标
    open emps;
    --循环读取数据
    loop
      fetch emps into em;
      -- 当 游标为空时退出循环
      exit when emps%notfound;
      -- 输出数据
      dbms_output.put_line('姓名:'||+em.ename||'工资:'|| em.sal);
    end loop;
    -- 关闭游标
     close emps;
   end;
  -------------------------------------------------------------------------------------------------------------------------------------------------------
 declare
  -- 创建带参数的游标
  cursor emps(dno number) is select * from emp where deptno=dno;
   em emp%rowtype;
   begin
     -- 打开游标时传参数
     open emps(10);
     loop
       fetch emps into em;
       exit when emps%notfound;
       dbms_output.put_line('姓名'||em.ename||'工资'||em.sal||'部门编号'||em.deptno);
     end loop;
     close emps;
   end;
   -- -系统引用游标
 declare
 -- 声明系统引用游标
   emps sys_refcursor;
   em emp%rowt
在PL/SQL中,可以使用游标嵌套传递参数来执行嵌套的SQL查询。以下是一个示例,展示了如何在PL/SQL中使用游标嵌套传递参数的SQL查询: ```sql DECLARE -- 声明外部游标变量和参数 CURSOR outer_cursor(p_parameter1 VARCHAR2, p_parameter2 NUMBER) IS SELECT column1, column2 FROM table1 WHERE condition1 = p_parameter1; -- 声明内部游标变量和参数 CURSOR inner_cursor(p_parameter3 VARCHAR2) IS SELECT column3 FROM table2 WHERE condition2 = p_parameter3; -- 声明变量来存储游标结果 var_column1 table1.column1%TYPE; var_column2 table1.column2%TYPE; var_column3 table2.column3%TYPE; BEGIN -- 打开外部游标 OPEN outer_cursor('value1', 123); -- 循环遍历外部游标结果 LOOP -- 从外部游标中获取数据到变量中 FETCH outer_cursor INTO var_column1, var_column2; -- 判断是否还有数据 EXIT WHEN outer_cursor%NOTFOUND; -- 在这里可以对获取到的数据进行处理 -- 可以使用 var_column1 和 var_column2 进行操作 -- 打开内部游标,并传递参数 OPEN inner_cursor('value2'); -- 循环遍历内部游标结果 LOOP -- 从内部游标中获取数据到变量中 FETCH inner_cursor INTO var_column3; -- 判断是否还有数据 EXIT WHEN inner_cursor%NOTFOUND; -- 在这里可以对获取到的数据进行处理 -- 可以使用 var_column3 进行操作 -- 输出数据 DBMS_OUTPUT.PUT_LINE('Column1: ' || var_column1 || ', Column2: ' || var_column2 || ', Column3: ' || var_column3); END LOOP; -- 关闭内部游标 CLOSE inner_cursor; END LOOP; -- 关闭外部游标 CLOSE outer_cursor; END; ``` 在上面的示例中,外部游标 `outer_cursor` 接受两个参数 `p_parameter1` 和 `p_parameter2`,内部游标 `inner_cursor` 接受一个参数 `p_parameter3`。您需要根据实际情况修改游标的查询语句和参数值,并根据需要对获取到的数据进行处理。 请注意,在嵌套游标中,内部游标的打开和关闭操作位于外部游标的循环内部。这样可以在外部游标的每次迭代中执行内部游标的查询。 希望以上示例对您有所帮助!如有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值