oracle下巧用bulk collect实现cursor批量fetch的sql语句

欣然姐有胸器

欣然姐有胸器

2016-02-19 10:00

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐oracle下巧用bulk collect实现cursor批量fetch的sql语句,希望大家看完后也有个好心情,快快行动吧!
在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。 


代码如下:

declare 
cursor c1 is select * from t_depart; 
v_depart t_depart%rowtype ; 
type v_code_type is table of t_depart.depart_code%type ; 
v_code v_code_type ; 
type v_name_type is table of t_depart.depart_name%type ; 
v_name v_name_type ; 
begin 
open c1; 
fetch c1 bulk collect into v_code , v_name ; 
for i in 1..v_code.count loop 
dbms_output.put_line(v_code(i)||' '||v_name(i)); 
end loop;  
close c1;  
end; 

通过上面的这个列子大家可以发现如果列很多的话,为每一列定义一个集合似乎有些繁琐,可以把集合和%rowtype结合起来一起使用简化程序! 
代码如下:

declare 
cursor c1 is select * from t_depart; 
type v_depart_type is table of t_depart%rowtype ; 
v_depart v_depart_type ; 
begin 
open c1; 
fetch c1 bulk collect into v_depart ; 
for i in 1..v_depart.count loop 
dbms_output.put_line(v_depart(i).depart_code||' '|| 
v_depart(i).depart_name); 
end loop;  
close c1;  
end; 

在输出结果时既可以使用集合的count属性和可以使用first和last,在引用%rowtype类型的内容时还有一个需要注意的地方是v_depart(i).depart_code,而不是v_depart.depart_code(i),当然没有这样的写法,即使有意义也并不一样。  
代码如下:

declare 
cursor c1 is select * from t_depart; 
type v_depart_type is table of t_depart%rowtype ; 
v_depart v_depart_type ; 
begin 
open c1; 
fetch c1 bulk collect into v_depart ; 
for i in v_depart.first..v_depart.last loop 
dbms_output.put_line(v_depart(i).depart_code||' '|| 
v_depart(i).depart_name); 
end loop;  
close c1;  
end; 
 
展开更多 50%)
分享

猜你喜欢

oracle下巧用bulk collect实现cursor批量fetch的sql语句

编程语言 网络编程
oracle下巧用bulk collect实现cursor批量fetch的sql语句

ORACLE SQL 语句分类

编程语言 网络编程
ORACLE SQL 语句分类

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

批量执行sql语句的方法

编程语言 网络编程
批量执行sql语句的方法

oracle调优之sql语句

编程语言 网络编程
oracle调优之sql语句

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle中捕获问题SQL语句

编程语言 网络编程
Oracle中捕获问题SQL语句

SQL查询语句对象化的实现(C#)

MySQL mysql数据库
SQL查询语句对象化的实现(C#)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10不能运行鲁大师怎么办?

win10不能运行鲁大师怎么办?

基于App自适应draw9patch不失真背景的方法详解

基于App自适应draw9patch不失真背景的方法详解
下拉加载更多内容 ↓