Oracle pro * c通过内存块批量插入数据的方法

时间:2015-09-01 18:18:37

标签: sql c oracle oracle-pro-c embedded-sql

我通过Pro C获得了嵌入式SQL for Oracle的c / c ++代码。需要通过Pro C嵌入式SQL批量更新和批量插入数据到Oracle表。

每当我们进行插入或更新时(下面给出更新示例),

update TBL1 set COL1= :v, . . . where rowid = :v

我们运行update语句为以下数据提供:v作为400K记录的数组(方案1)并运行相同的更新语句三次,每次提供1200K记录(方案2),最后执行提交

方案1和方案2的性能是否相同? 这里,feed通过符合DB表结构的结构数组完成批量插入或更新。

此外,在以类似方式进行插入时出现另一个奇怪的问题(使用数组进行批量插入),当数据量非常大(超过600K左右)时,会出现“ORA-01438: value larger than specified precision allowed for this column”错误。

Pro * C插入语句如下所示:

insert into TBL1 (COL1) values :v

我们传递列的值数组。 想一想,这可能是一个数据问题。但是,事实并非如此。在较小的块中插入相同的数据时,在每个Feed中说200K,批量插入提交和下一个Feed等等。 请建议。

0 个答案:

没有答案