REF游标

      显式游标是静态游标也就是说游标与一条SQL语句关联在编译块时此语句是已知的

      在运行时游标变量也可以与不同的语句关联。游标变量类似于PL/SQL变量,可以在运行时接纳不同的值。静态游标类似于PL/SQL常量,因为它们只能与一个运行时查询关联。

       游标是一种引用类型,引用类型与指针相同,它可以在程序运行时指定不同的存储位置。为了使用引用类型,必须声明变量,然后必须分配存储空间。

      引用类型声明语法如下:

            REF_var     type

其中type是事先定好的类型,ref关键字指示新类型是指:指向已定义类型的指针,因此,游标的类型是REF游标。定义游标变量类型的完整语法如下:

         Type  type_name    is  ref    cursor    return     return_type;

  其中type_name是新引用类型的名称返回类型是指示将由游标变量返回的select列表的类型的记录类型。游标变量的返回类型必须是记录类型可以将它显式声明为用户定义的记录,也可以使用%ROWTYPE隐式声明它。在定义引用类型之后,可以声明变量。

具有约束的游标变量和无约束的游标变量

当游标变量具有返回类型时它称为具有约束的游标变量或强游标。但是游标变量不一定需要具有返回类型这样的游标变量称为无约束的游标变量或弱游标。强游标和弱游标的声明的示例如下:

--强游标类型

Type t_add_ref is ref cursor returnvendor_master%rowtype;

--弱游标类型

Type t_adds_ref is ref cursor;

--声明游标变量

     V_add_ref   t_add_ref;  --强游标变量 或具有约束变量

    V_adds_ref t_adds_ref;  --弱游标变量或无约束变量

打开游标变量进行查询:

   游标变量必须与特定的select语句关联。这是由open语句实现的,该语句已扩展为允许指定查询。使用open语句的语法如下。

Open cursor_variable for select_statement;

其中cursor_variable是以前声明的游标变量,select_statement是所需的查询。如果游标变量是具有约束的,select列表必须与游标的返回类型匹配

关闭游标变量

     与静态游标一样游标变量是使用close语句关闭的。这将释放用于查询的资源。但是,它不一定释放游标变量本身的存储空间。在变量超出其作用域时,将释放变量的存储空间。关闭已经关闭的游标或游标变量是非法的。

--此实例根据用户选择的动态游标打开两个不同的sql其中一个

  



  











  








  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值