Oracle中ora24381,ORACLE HANDBOOK系列之四:批量SQL(BULK SQL)

PL/SQL引入过程化语言的相应元素,比如条件分支或者循环,不过,SQL本身仍然作为主体嵌套于其中,由于需要SQL引擎才能执行SQL命令,对于PL/SQL程序,往往存在许多PL/SQL引擎-SQL引擎之间的交互,过多这样的交互会对性能产生负面影响。

Oracle在PL/SQL中引入了BULK SQL,用于尽量减少PL/SQL – SQL引擎之间的交互,以期提高性能。具体而言,Oracle BULK SQL包括FORALL语句、BULK COLLECT子句。前者将多条语句(通常是DML)一次性发送给SQL引擎;后者将SQL引擎所获得的结果一次性返回给PL/SQL引擎。

(1)FORALL

下面的两个例子对比了FORALL与FOR循环之间的区别:

SQL>createtablet_bulkasselect*fromemployees;

SQL>desct_bulk;

Name           Type         NullableDefaultComments-------------- ------------ -------- ------- --------EMPLOYEE_IDNUMBER(6)    Y

FIRST_NAMEVARCHAR2(20) Y

LAST_NAMEVARCHAR2(25)

EMAILVARCHAR2(25)

PHONE_NUMBERVARCHAR2(20) Y

HIRE_DATE      DATE

JOB_IDVARCHAR2(10)

SALARYNUMBER(8,2)  Y

COMMISSION_PCTNUMBER(2,2)  Y

MANAGER_IDNUMBER(6)    Y

DEPARTME

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值