oracle存储过程的动态游标的简单例子

CREATE OR REPLACE PROCEDURE testp(p_value IN VARCHAR2)
       IS
    TYPE ref_cursor_type IS REF CURSOR; --定义一个动态游标
    users ref_cursor_type;   --定义游标类型
    user Users%ROWTYPE; --定义变量类型, 这里的users是表明
    vSql VARCHAR2(255); //sql文本
BEGIN
  vSql := 'select * from Users'; --要查询的sql字符串,可拼接起来
  OPEN users FOR vSql;  --打开游标
  LOOP
    FETCH users INTO user; --循环遍历users列表给user,user为临时对象
    exit when users%notfound; 
    -- user相当于表对象可以直接拿来用
    --比如要打印user对象里面的name
    dbms_outpt.put_line(user.name);
  end loop;
  CLOSE users;
END;

上面的存储过程中是假设  有users这么一张表, 假设这张表有name字段, 入参可以忽略,随便加上的

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值