工具/材料:电脑,oracle数据库表
1.例test表中有如下数据。
2.插入一条id为6,name为杨七的数据。insert into testvalues (6,'杨七')commit。
3.向表中复制一条目前表中id为1的数据,可用如下语句:insert into test select * from test where id=1commit在执行insert语句后,必须提交,即commit,否则不成功。
declare--定义IntArray 类型,该类型是每个元素为int类型的数组
Type IntArray is table of int
--定义一个IntArray 类型的变量
v_array IntArray := IntArray()
begin
--向数组中存入数据
for i in 1.. 100 loop
--需要扩展数组
v_array.extend
v_array(i) := i
end loop
--输出数组的内容
for i in 1.. 100 loop
dbms_output.put_line(v_array(i))
end loop
end
SQL>set serverout on
SQL>declare
2 --定义IntArray 类型,该类型是每个元素为int类型的数组
3 Type IntArray is table of int
4 --定义一个IntArray 类型的变量
5 v_array IntArray := IntArray()
6 begin
7--向数组中存入数据
8for i in 1.. 100 loop
9--需要扩展数组
10v_array.extend
11v_array(i) := i
12end loop
13
14--输出数组的内容
15for i in 1.. 100 loop
16dbms_output.put_line(v_array(i))
17end loop
18 end
19 /
1
2
3
4
5
6
7
8
9
10
此处省略90行
PL/SQL procedure successfully completed
SQL>
Oracle不支持也没有SqlBulkCopy类,那个只有SqlServer数据库才支持,Oracle可以用数组形式的参数批量提交来实现,但那个绝对不能叫“BulkCopy”。OracleCommand command = new OracleCommand("链接字符串")
command.ArrayBindCount = 1000
command.CommandText = "insert into dept values(:deptno, :deptname, :loc)"
int[] deptNo = new int[1000]
string[] dname = new string[1000]
string[] loc = new string[1000]
command.Parameters.Add(new OracleParameter("deptno", OracleDbType.Int32) { Value = deptNo })
command.Parameters.Add(new OracleParameter("dname", OracleDbType.Varchar2) { Value = dname })
command.Parameters.Add(new OracleParameter("loc", OracleDbType.Varchar2) { Value = loc })
command.ExecuteNonQuery()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)