易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

Oracle SQL的硬解析和软解析


 
说到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:
    1、语法检查(syntax check)
    检查此sql的拼写是否语 ......

SQL Server2005表分区

 ---//创建分区
CREATE PARTITION FUNCTION MarketInfo_Bak_partfunc(int)
AS RANGE RIGHT
FOR VALUES (10000,25000,40000)
--//创建分区架构
CREATE PARTITION SCHEME MarketInfo_Bak_partscheme
  AS PARTITION MarketInfo_Bak_partfunc
  TO (fg1, fg2, fg3, fg4) --//fg1...fg4文件组名
--//对表进 ......

hibernate删除操作的sql语句写法

 
第一种:
public void deleteUser(String byemail) {
  Session session = getSession();
  Transaction transaction = null;
  String hql = "delete from Register where email=?
";
  try {
   transaction = session.beginTransactio ......

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

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

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号