• ORACLE SYS_REFCURSOR VS REF CURSOR


    CURSOR是强类型,SYS_REFCURSOR 是弱类型(类似C#的var)。

    Cursor:

    create or replace package pkg as
      cursor cur is
        select 1 n from dual;    
      type tcur is ref cursor return pkg.cur%rowtype;  
    end pkg;
    /
    
    --类型报错
    declare
      cur pkg.tcur;
    begin
      open cur for 
        select 'a' s, 1 n from dual; --跟游标定义的类型不一致
    end;
    /
    
    --正常运行
    declare
      cur pkg.tcur;
    begin
      open cur for 
        select 'kkk' n from dual;
    end;
    /
    
    --正常运行
    declare
      cur pkg.tcur;
    begin
      open cur for 
        select 900 n from dual;
    end;
    /
    View Code

    Sys_refcursor:

    declare
    cur sys_refcursor;
    begin
    open cur for 
    select 'a' s, 1 n from dual;
    
    close cur;
    
    open cur for 
    select 9 n from dual; --跟上面的游标类型不一致
    
    close cur;
    end;
    /

  • 相关阅读:
    Ajax
    Linux安装SmartSVN及破解
    JQuery异步提交
    动画效果
    事件
    表单选择器
    DOM操作
    JQuery基础
    PHP环境配置
    DP--钢条切割
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/cursor.html
Copyright © 2020-2023  润新知