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字段, 入参可以忽略,随便加上的

你可能感兴趣的:(初来乍到)