提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郝浩|2013-05-03 10:29:47.000|阅读 412 次
概述:插入或更新大的数据量时,使用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@cahobeh.cn
文章转载自:慧都控件本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
dotConnect for Oracle不仅可以高效地连接到Oracle数据库,还提供了新的开发工具和技术。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢