我通过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等等。 请建议。