«

»

Oracle中的显式游标和隐式游标的使用区别

oracle 游标 显式 隐式游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。用数据库语言来描述游标就是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。在Oracle中,有显式游标和隐式游标之分。

显式游标的定义:

隐式游标则可直接使用:

这样就完成了一次隐式游标的调用,可以看到此种方式类似于高级语言的for循环。

而显式游标定义、打开与调用是分开的:

这是一个繁琐的显式游标调用过程,循环以exit when aaa_cursor%notfound形式的语句退出。

然而在某些情况下显式游标使用起来会更加灵活。在隐式游标的for语句调用中,类似for语句,在取不到下条记录的情况下,不会进入循环体而会直接退出。这在某些情况下会造成一些不便,比如在无更多数据时应对最后一组数据进行处理再退出。此时显式游标以aaa_cursor%notfound条件判定再退出的形式就会有用的多,可以在循环体内根据aaa_cursor%notfound的条件手动控制退出的时机,进行最后一次处理。

1 星2 星3 星4 星5 星 (尚无评分)
Loading...Loading...

相关文章

Oracle自定义函数中select语句令人费解的性能问题 索引既可以隐式调用,也可以显式调用。索引的优化对数据库的性能至关重要。在Oracle中开发一个对帐函数...
Oracle的PLS-00231 错误分析 Sybase中没有Function的概念(Java的不算),所以存储过程都需要用Exec调用。而Oracle这方面更灵活一些...
PL/SQL中的条件编译 PL/SQL中居然有类似于C一样的条件编译指令,这对在过程中以dbms_output.put_line输出调试信息的方式很有...
PL/SQL中rpad/lpad的使用 PL/SQL中似乎没有生成重复字符串的函数,可以用lpad/rpad来客串一下: select lpad('x',10,'x') from du...
Oracle中NVARCHAR2的问题! 查过简单的资料,Oracle中NVARCHAR2可用于正确处理汉字,每位可对应于一个汉字或英文,如nvarchar2(10)...
Oracle自定义数据类型作表列时的访问 Oracle除了预定义类型之外,还可以自定义类型,根据需求用户可以自己定义记录数据类型(Record)和记录...
PL/SQL函数的调用限制 PL/SQL中的函数可用在表达式中,我们喜欢用它的原因是因为它的使用方式几乎与其它语言如C中的函数几乎完...
PL/SQL中的包与重载函数 PL/SQL不同于sybase或mssql的tsql,具有类似高级语言的复杂语法和功能。它的包中可定义类型,常量变量及...

发表评论

电子邮件地址不会被公开。