批量sql实例分析与比较(Compared with bulk SQL case analysis).doc

批量sql实例分析与比较(Compared with bulk SQL case analysis).doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
批量sql实例分析与比较(Compared with bulk SQL case analysis)

批量sql实例分析与比较(Compared with bulk SQL case analysis) Compared with bulk SQL case analysis Oracle introduced BULK SQL in PL/SQL, to minimize the interaction between PL/SQL and SQL in order to improve the performance of the engine. Specifically, the Oracle BULK SQL FORALL BULK COLLECT, including the statement clause. The former will be multiple statements (usually DML) once sent to the SQL engine; the latter will get the results back to the disposable SQL engine PL/SQL engine. FORALL The following two examples comparing the difference between FORALL and FOR cycle: SQL create table t_bulk as select * from employees; SQL desc t_bulk; Name Type Nullable Default Comments , EMPLOYEE_ID NUMBER (6) Y FIRST_NAME VARCHAR2 (20) Y LAST_NAME VARCHAR2 (25) EMAIL VARCHAR2 (25) PHONE_NUMBER VARCHAR2 (20) Y HIRE_DATE DATE JOB_ID VARCHAR2 (10) SALARY NUMBER (8,2) Y COMMISSION_PCT NUMBER (2,2) Y MANAGER_ID NUMBER (6) Y DEPARTMENT_ID NUMBER (4) Y DECLARE TYPE NumList IS VARRAY (20) OF NUMBER; Depts: NumList = NumList (10, 30, 70); BEGIN FOR I IN depts.FIRST..Depts.LAST LOOP DELETE FROM t_bulk WHERE department_id = depts (I); END LOOP; END; DECLARE TYPE NumList IS VARRAY (20) OF NUMBER; Depts: NumList = NumList (10, 30, 70) - Department numbers; BEGIN FORALL I IN depts.FIRST..Depts.LAST DELETE FROM t_bulk WHERE department_id = depts (I); END; Although the internal implementation mechanism, there is a great difference between the two cycles, but grammatically or very similar. But there is a need to pay attention to small details, the FORALL statement is not a corresponding END statement. Let us look at the abnormal treatment, the use of FORALL: CREATE TABLE t_bulk2 (F1 NUMBER (3)); DECLARE TYPE type1 IS TABLE OF NUMBER; V type1:=type1 (1, 2, 3000, 4, 5, 6, 77777, 8, 9, 10001); BEGIN EXECUTE IMMEDIATETRUNCATE TABLE t_bulk2; - FORALL idx IN v. v.last第一.. 插入t_bulk2值(V(IDX)); —— 例外 当别人然后 dbms_output put_line(sqlerrm); 结束; ora-01438:值大于为此列指定的允许精度 PL/SQL程序顺利完成 SQL SELECT * FROM t_bulk2 ; 一层楼 ----

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档