易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE 游标和游标变量的区别

如何定义游标类型
TYPE ref_type_name IS REF CURSOR [RETURN return_type];
声明游标变量
cursor_name ref_type_name;
从技术底层看,两者是相同的。普通plsql cursor在定义时是“静态”的。而Ref cursors可以动态打开。
例如下面例子:
Declare
type rc is ref cursor;
cursor c is select * from dual;
l_cursor rc;
begin
if ( to_char(sysdate,'dd') = 30 ) then
       open l_cursor for 'select * from emp';
elsif ( to_char(sysdate,'dd') = 29 ) then
       open l_cursor for select * from dept;
else
       open l_cursor for select * from dual;
end if;
open c;
end;
/
l          rc根据逻辑动态打开;而游标c定义好了只有就无法修改了。
l          ref cursor可以返回给客户端,cursor则不行。
l          cursor可以是全局的global ,ref cursor则必须定义在过程或函数中。
l          ref cursor可以在子程序间传递,cursor则不行。
l          cursor中定义的静态sql比ref cursor效率高,所以ref cursor通常用在向客户端返回结果集。


相关文档:

ORACLE误删数据文件导致ORA

自从学ORACLE以来就从来没有发生过什么故障,比较幸运。其实也不能算幸运,因为这样就少了锻炼的机会了,呵呵,怎么觉得自己有点求虐的倾向……
即便是在学习backup and recovery basics的时候,也只是做做备份的实验,没做过恢复,因为身边没有人指导,也没其他同学在学ORACLE,所以怕一出问题肯定很麻烦,解 ......

Oracle 10g数据库关闭后无法启动,ORA

  近日在学习Oracle 10G的过程中遇到一个问题,关闭数据库(shutdown immediate)后,再重启数据库(startup),启动失败,12514的错误,如果通过sqlplus /nolog进入数据库以后,用conn连接,一样不行。重新打开一个cmd窗口,输入:
sqlplus
用户名:sys@sim as sysdba,密码输入完成后,仍然出现如下错误:
ORA ......

Oracle与DB2中序列处理

1、序列定义    
   ORACLE:   
             CREATE SEQUENCE <sequence_name>
          INCREMENT BY <integer>
    &n ......

oracle command window 输出显示output参数

fmobile输入参数,msg输出参数
--方法1
 variable msg varchar2(100)
variable fmobile varchar2(100):='13424242890'
exec smsrun.PKG_SETNEIZHI.p_Whynomt(fmobile,msg)
print msg
--方法2
set serveroutput on;
  declare
  FMOBILE varchar2(100):='13424242890';
  msg varchar2(100):= ......

Oracle 数字函数用法

 1. round(Num,n) :  四舍五入数字Num,保留n位小数,不写N默认不要小数,四舍五入到整数个位
 select ROUND(21.237,2) from dual; 
 结果: 21.24
 2. trunc(Num,n) : 截取数字Num,保留n位小数,不写N默认是0,即不要小数
 select TRUNC(21.237,2) from dual;
 结果:21.2 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号