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

PL/SQL开发

bulk collect是可以看做是一种批获取的方式,在我们的plsql的代码段里经常作为into的扩展来使用。对于select id into v from .... 是一个常用的用法。不过这里只能是返回单条记录的时候,才能使用,如果是有多条记录我们就不能用这样的方式,而是使用fetch和循环的方式,不仅使用麻烦,而且性能也底下,这时我们的bulk collect隆重登场了,解决我们的问题。
通过bulk collect可以把我们的查询结果一次性地加载到我们的嵌入表中。这样我们不需要很麻烦的用游标的循环一条一条的去fetch叻,可想而知,这样不仅操作方便,也可以获得相当不错的程序性能。 我们可以在select into, fetch into, returning into的句子中使用。下面我们通过对以上各个例子来进行演示来看看他们的用法
先来看看我们的测试表和数据 
SQL> desc test; 
Name Null? Type 
----------------------------------------- -------- ---------------------------- 
ZC_CODE VARCHAR2(20) 
MONEY NUMBER(35) 
MONEY_2 NUMBER(35) 
SQL> col zc_code format a20; 
SQL> col money format 999999.99; 
SQL> col money_2 format 9999.99; 
SQL>select * from test;
ZC_CODE MONEY MONEY_2 
-------------------- ---------- -------- 
201 18600.00 
20101 9600.00 
2010101 3300.00 
2010102 3200.00 
2010103 3100.00 
20102 9000.00 
2010201 2000.00 
2010202 7000.00 
8 rows selected. 
定义我们的嵌套表的类型, 定义在一个package里,这个package使我们的数据类型集合 
SQL> create or replace package ALL_DATA_TYPE is 
2 type T_TESTROW is table of test1.test%rowtype index by binary_integer; 
3 type T_TESTZCCODE is table of test1.test.zc_code%type index by binary_integer; 
4 end; 
5 / 
先来个select into的例子 
SQL> create or replace function test_bulkcollect return ALL_DATA_TYPE.T_TESTROW is 
2 v_rtn ALL_DATA_TYPE.T_TESTROW; 
3 begin 
4 select * bulk collect into v_rtn from test; 
5 return v_rtn; 
6 end; 
7 / 
统一的测试方法, 我们分别用这个测试代码来演示以上select into,fetch into和r


相关文档:

在做SQL故障转移群集的时候应该选择哪种模式?

如果我们的SQL Server要保证高可用性,那么可以采用故障转移群集。最简单的故障转移群集是两台服务器,一台做活动的服务器,另一台做备用服务器,这就是AP模式的Cluster。另外一个模式就是AA模式,也就是两台服务器都是运行SQL Server实例。
SQL Server不像Oracle一样有RAC,所以不可能说两台服务器同时运行同一个实例,想 ......

SQL Server 数据库优化方法 (一)

  我经常碰到有人会问一些数据库优化方面的问题,我觉得这是一最基本技能要求,特别是使用sql server 2005,对于sql server的优化,使用的专职dba或兼职dba们工作更轻松,效率更高了,但是还是有很多新人可能不大了解,我在这儿写一下最基本的一些介绍。
  一、首先介绍一下sql server 2005中优化数据时使用到的两个工 ......

Java 连接数据库、执行SQL封装类

/*当执行SQL时发现不能连接数据库,先重连一次*/
 
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......

这样的sql,我却做到了。

 这是一个CSDN Oracle开发版块里,网友问过的一道题
题如下
create table A_TEST
(
PAYOUT_ITEM_CODE VARCHAR2(30) not
null,
FORMULA_DET VARCHAR2(1000)
)
create table B_TEST
(
ELEMENT_ID VARCHAR2(5) not null,
NAME VARCHAR2(41)
)  
求写oracle多个字符替换(有测试数据)
inser ......

sql server一个使用游标的实例

--创建游标
DECLARE Cursor1 CURSOR FOR
SELECT NODE_NO,NODE_VALUE,SUM(RESALE_SUM-RESALERETU_SUM+SALE_SUM-SALERETU_SUM) sale_sum,
SUM(STORE_SUM) sum_store,SUM(STORE_SUM) store_sum,
sum(RESALE_PROFIT-RESALERETU_PROFIT+SALE_PROFIT-SALERETU_PROFIT-ADJUST_PROFIT) sale_profit
from ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号