- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
批量绑定:
批量绑定是指单条SQL操作能传递所有PLSQL表的数据。通过批量绑定,可以极大地加快数据处理速度,提高应用程序性能。批量绑定语句forall主要针对insert、update、delete等语句,forall绑定的表必须是PLSQL表,即单列多行的数据结构(类似于c语言中的数组),如:索引表、嵌套表、变长数组,不能是记录表。
2、批量绑定语句forall的语法:(一次次的提取数据)
语法一:(i作为PLSQL表的下标被引用)
forall i in lower..upper sql_statement;
解释:对PLSQL表中下标为i(取值范围为lower和upper之间,包括边界,i可以是其他满足命名规则的名字)的数据进行批量绑定。
例子:
DECLARE
TYPE int_table_type IS TABLE OF INTEGER INDEX BY BINARY_INTEGER;--声明索引表类型,其中的数
--据类型为integer,索引表类型是PLSQL表类型的一种
TYPE varchar2_table_type IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER; --声明索引表类型,
--其中的数据类型为varchar2(20)
name_table varchar2_table_type;--用声明的索引表类型声明变量,即声明一个PLSQL表
id_table int_table_type; --用声明的索引表类型声明变量,即声明另一个PLSQL表
BEGIN
FOR i IN 1..100000 LOOP
id_table(i) := i;--为PLSQL表赋值
name_table(i) := aaa || i;--为另一个PLSQL表赋值
END LOOP;
FORALL i IN 1..100000 INSERT INTO intest VALUES(id_table(i),name_table(i));-- 将PLSQL表
--id_table和name_table下标为i的数据插入到intest表中,这里i从1到100000
END;
/
语法二:(用于下标不连续的情况)
forall i in indices of collection [between lower and upper] sql_statement;
解释:对PLSQL表中下标为i(i的取值范围为indices取得的collection(PLSQL表)的所有下标值,同时i在范围为lower到upper之间,包括边界)的数据进行批量绑定。
例子:
DECLARE
TYPE int_table_type IS TABLE OF binary_integer INDEX BY BINARY_INTEGER;
id_table int_table_type;
BEGIN
FOR i IN 1..10 LOOP
id_table(i) := i;
END LOOP;
FORALL i IN INDICES OF id_table BETWEEN 1 AND 5 DELETE FROM intest WHERE iid = id_table(i);
--对PLSQL表id_table下标为i(i取PLSQL表id_table的下标值,同时满足大于等于1小于等于5)的数据进行
--批量绑定同时进行相关操作,这里表intest的iid等于id_table(1..5)的数据会被删
END;
/
语法三:(用于处理重复数据)
forall i in values of index_collection sql_statement;
解释:对PLSQL表中下标为i(i的取值范围为index_collection表中的值)的数据进行批量绑定。
例子:
DECLARE
TYPE int_table_type IS TABLE OF binary_integer INDEX BY BINARY_INTEGER;
TYPE varchar2_table_type IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
name_table varchar2_table_type;
id_table int_table_type;
BEGIN
id_table(1):=5;
id_table(5):=1;
name_table(5):=aa5;
name_table(1):=aa4;
name_table(3):=aa4;
FORALL i IN
您可能关注的文档
最近下载
- 诸侯纷争与变法运动【课件】.pptx VIP
- 中国高血压防治指南(2024年修订版)_中国高血压防治指南修订委员会__.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学.pdf VIP
- 民事诉讼法中案外第三人对执行的异议之诉.pdf VIP
- 车险承保方案.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学试卷含答案.pdf VIP
- 临海市城市生活垃圾焚烧发电厂扩建工程环境影响报告.pdf
- 2025内蒙古鄂尔多斯市公安机关招聘留置看护警务辅助人员115人笔试参考题库附答案解析.docx VIP
- 模电教案-李国丽.doc
- 2023版中国结直肠癌及癌前病变内镜诊治共识PPT课件.pptx VIP
文档评论(0)