没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郝浩|2013-05-03 10:29:47.000|阅读 496 次
概述:插入或更新大的数据量时,使用Oracle数组绑定功能可以大大加快应用程序的执行。数组绑定的主要优点是在同一时间允许插入有不同参数的几个SQL语句。后面将附加示例。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
插入或更新大的数据量时,使用Oracle数组绑定功能可以大大加快应用程序的执行。数组绑定的主要优点是在同一时间允许插入有不同参数的几个SQL语句。
以下Oracle表定义将用于在VB和C #示例中:
CREATE TABLE dept ( deptno NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13) );
首先,需要创建一个OracleConnection类的对象,并打开一个连接到Oracle数据库:
[C#]
... OracleConnection conn = new OracleConnection( "User Id=Scott;Password=tiger;Data Source=Ora"); conn.Open(); ...
[Visual Basic]
... Dim conn As OracleConnection = new OracleConnection( _ "User Id=Scott;Password=tiger;Data Source=Ora") conn.Open() ...
请注意,这仅仅是一个段的示例代码。全文将在本文末尾。
之后,你应该创建一个与OracleConnection对象相关的OracleCommand类的实例,并指定用于执行SQL语句:
[C#]
... OracleCommand cmd = conn.CreateCommand(); cmd.CommandText = "INSERT INTO dept VALUES(:deptno_p, :dname_p, :loc_p)"; ...
[Visual Basic]
... Dim cmd As OracleCommand = conn.CreateCommand() cmd.CommandText = "INSERT INTO dept VALUES(:deptno_p, :dname_p, :loc_p)" ...
现在你应该为来自SQL的每个参数关联OracleParameter类对象,并添加这个对象到OracleCommand对象的参数集合,通过下面的方式实现用参数名称完成关联:
[C#]
...
cmd.Parameters.Add("deptno_p", OracleDbType.Integer);
cmd.Parameters.Add("dname_p", OracleDbType.VarChar, 200);
cmd.Parameters.Add("loc_p", OracleDbType.VarChar, 200);
...
[Visual Basic]
...
cmd.Parameters.Add("deptno_p", OracleDbType.Integer)
cmd.Parameters.Add("dname_p", OracleDbType.VarChar, 200)
cmd.Parameters.Add("loc_p", OracleDbType.VarChar, 200)
...
你应该为每个参数指定名称和类型,建议对于VarChar / NVarChar参数指定参数显示的大小。
下面就是参数赋值了,参数值应该用相应的SQL语句执行数的数量来进行分组,每一项的数组必须对应于单个执行SQL语句。
[C#]
...
cmd.Parameters["deptno_p"].Value = new int[] { 10, 20, 30, 40 };
cmd.Parameters["dname_p"].Value = new string[] {
"ACCOUNTING", "RESEARCH", "SALES", "OPERATIONS" };
cmd.Parameters["loc_p"].Value = new string[] {
"NEW YORK", "DALLAS", "CHICAGO", "BOSTON" };
...
[Visual Basic]
...
Dim deptno(3) As Integer
deptno(0) = 10
deptno(1) = 20
deptno(2) = 30
deptno(3) = 40
Dim dname(3) As String
dname(0) = "ACCOUNTING"
dname(1) = "RESEARCH"
dname(2) = "SALES"
dname(3) = "OPERATIONS"
Dim loc(3) As String
loc(0) = "NEW YORK"
loc(1) = "DALLAS"
loc(2) = "CHICAGO"
loc(3) = "BOSTON"
cmd.Parameters("deptno_p").Value = deptno
cmd.Parameters("dname_p").Value = dname
cmd.Parameters("loc_p").Value = loc
...
在完成前面的步骤后,就可以调用ExecuteArray方法,假定一个参数指定SQL语句将被执行的次数。值得注意的是,这种方法的值必须等于参数值的元素的数量。现在用任何的Oracle工具执行SELECT * FROM Dept,将会看见有四个新的记录添加。
[C#]
... cmd.ExecuteArray(4); ...
[Visual Basic]
... cmd.ExecuteArray(4)
下面是一个示例代码,主要是用数组绑定执行几个插入操作:
[C#]
public void ArrayBindInsert()
{
// Create connection object
OracleConnection conn = new OracleConnection(
"User Id=Scott;Password=tiger;Data Source=Ora");
// Open connection
conn.Open();
// Create command object with previously opened connection
OracleCommand cmd = conn.CreateCommand();
// Set command text property
cmd.CommandText = "INSERT INTO dept VALUES(:deptno_p, :dname_p, :loc_p)";
// Add parameters to command parameters collection
cmd.Parameters.Add("deptno_p", OracleDbType.Integer);
cmd.Parameters.Add("dname_p", OracleDbType.VarChar);
cmd.Parameters.Add("loc_p", OracleDbType.VarChar);
// Set parameters values
cmd.Parameters["deptno_p"].Value = new int[] { 10, 20, 30, 40 };
cmd.Parameters["dname_p"].Value = new string[] {
"ACCOUNTING", "RESEARCH", "SALES", "OPERATIONS" };
cmd.Parameters["loc_p"].Value = new string[] {
"NEW YORK", "DALLAS", "CHICAGO", "BOSTON" };
// Insert four records at one time
cmd.ExecuteArray(4);
// Dispose command
cmd.Dispose();
// Close connection
conn.Close();
}
[Visual Basic]
Public Sub ArrayBindInsert()
' Create connection object
Dim conn As OracleConnection = new OracleConnection( _
"User Id=Scott;Password=tiger;Data Source=Ora")
' Open connection
conn.Open()
' Create command object with previously opened connection
Dim cmd As OracleCommand = conn.CreateCommand()
' Set command text property
cmd.CommandText = "INSERT INTO dept VALUES(:deptno_p, :dname_p, :loc_p)"
' Add parameters to command parameters collection
cmd.Parameters.Add("deptno_p", OracleDbType.Integer)
cmd.Parameters.Add("dname_p", OracleDbType.VarChar)
cmd.Parameters.Add("loc_p", OracleDbType.VarChar)
' Set parameters values
Dim deptno(3) As Integer
deptno(0) = 10
deptno(1) = 20
deptno(2) = 30
deptno(3) = 40
Dim dname(3) As String
dname(0) = "ACCOUNTING"
dname(1) = "RESEARCH"
dname(2) = "SALES"
dname(3) = "OPERATIONS"
Dim loc(3) As String
loc(0) = "NEW YORK"
loc(1) = "DALLAS"
loc(2) = "CHICAGO"
loc(3) = "BOSTON"
cmd.Parameters("deptno_p").Value = deptno
cmd.Parameters("dname_p").Value = dname
cmd.Parameters("loc_p").Value = loc
' Insert four records at one time
cmd.ExecuteArray(4)
' Dispose command
cmd.Dispose()
' Close connection
conn.Close()
End Sub
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn
文章转载自:慧都控件



注意: Cogent DataHub 软件 v11 包含一些新功能,您的目标操作系统可能不支持这些功能。
本教程主要为大家介绍如何使用DevExpress WinForms数据网格控件进行数据排序的基础知识,欢迎下载最新版组件体验!
在使用Parasoft C/C++test执行BugDetective数据流分析时,可能会遇到用户自定义的资源API,那在这种情况下,若要判断是否存在资源问题,如资源泄露等,则需要手动配置测试配置。
大型SaaS系统的自动化测试常常受制于界面变化快、结构复杂、加载机制多变等因素。从元素识别到脚本管理,SmartBear TestComplete帮助Salesforce建了可靠的自动化测试体系。
相关产品
dotConnect for Oracle不仅可以高效地连接到Oracle数据库,还提供了新的开发工具和技术。
最新文章 MORE
半岛外围网上直营相关的文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营