plsql批量操作与动态sql

plsql批量操作与动态sql

ID:34725387

大小:98.68 KB

页数:5页

时间:2019-03-10

plsql批量操作与动态sql_第1页
plsql批量操作与动态sql_第2页
plsql批量操作与动态sql_第3页
plsql批量操作与动态sql_第4页
plsql批量操作与动态sql_第5页
资源描述:

《plsql批量操作与动态sql》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1、批量绑定:批量绑定是指单条SQL操作能传递所有PLSQL表的数据。通过批量绑定,可以极大地加快数据处理速度,提高应用程序性能。批量绑定语句forall主要针对insert、update、delete等语句,forall绑定的表必须是PLSQL表,即单列多行的数据结构(类似于c语言中的数组),如:索引表、嵌套表、变长数组,不能是记录表。2、批量绑定语句forall的语法:(一次次的提取数据)语法一:(i作为PLSQL表的下标被引用)foralliinlower..uppersql_statement;解释:对PLSQL表中下标为i(取值范围为lower和upper之间,

2、包括边界,i可以是其他满足命名规则的名字)的数据进行批量绑定。例子:DECLARETYPEint_table_typeISTABLEOFINTEGERINDEXBYBINARY_INTEGER;--声明索引表类型,其中的数--据类型为integer,索引表类型是PLSQL表类型的一种TYPEvarchar2_table_typeISTABLEOFVARCHAR2(20)INDEXBYBINARY_INTEGER;--声明索引表类型,--其中的数据类型为varchar2(20)name_tablevarchar2_table_type;--用声明的索引表类型声明变量,即声明

3、一个PLSQL表id_tableint_table_type;--用声明的索引表类型声明变量,即声明另一个PLSQL表BEGINFORiIN1..100000LOOPid_table(i):=i;--为PLSQL表赋值name_table(i):='aaa'

4、

5、i;--为另一个PLSQL表赋值ENDLOOP;FORALLiIN1..100000INSERTINTOintestVALUES(id_table(i),name_table(i));--将PLSQL表--id_table和name_table下标为i的数据插入到intest表中,这里i从1到100000END;/

6、语法二:(用于下标不连续的情况)foralliinindicesofcollection[betweenlowerandupper]sql_statement;解释:对PLSQL表中下标为i(i的取值范围为indices取得的collection(PLSQL表)的所有下标值,同时i在范围为lower到upper之间,包括边界)的数据进行批量绑定。例子:DECLARETYPEint_table_typeISTABLEOFbinary_integerINDEXBYBINARY_INTEGER;id_tableint_table_type;BEGINFORiIN1..10LOO

7、Pid_table(i):=i;ENDLOOP;FORALLiININDICESOFid_tableBETWEEN1AND5DELETEFROMintestWHEREiid=id_table(i);--对PLSQL表id_table下标为i(i取PLSQL表id_table的下标值,同时满足大于等于1小于等于5)的数据进行--批量绑定同时进行相关操作,这里表intest的iid等于id_table(1..5)的数据会被删END;/语法三:(用于处理重复数据)foralliinvaluesofindex_collectionsql_statement;解释:对PLSQL表中

8、下标为i(i的取值范围为index_collection表中的值)的数据进行批量绑定。例子:DECLARETYPEint_table_typeISTABLEOFbinary_integerINDEXBYBINARY_INTEGER;TYPEvarchar2_table_typeISTABLEOFVARCHAR2(20)INDEXBYBINARY_INTEGER;name_tablevarchar2_table_type;id_tableint_table_type;BEGINid_table(1):=5;id_table(5):=1;name_table(5):='aa5

9、';name_table(1):='aa4';name_table(3):='aa4';FORALLiINVALUESOFid_tableinsertintointestvalues(id_table(i),name_table(i));--对PLSQL表id_table和name_table下标为i(i取PLSQL表id_table中的值)的数据进行批量绑定,同时进行--操作。这里会将id_table(1)、id_table(5)、name_table(1)、name_table(5)插入到intest表中END;/3、批量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。