C#.Net我使用OracleBulkCopy将数据复制到在提交时声明为Delete的全局临时表。所以当我使用OracleBulkCopy.WriteToServer(DataReader)时。它提交,我正在丢失所有数据。如何防止这种情况?
答案 0 :(得分:2)
OracleBulkCopy似乎不支持交易。自动提交永远不会使用,以更受控制的方式进行复制,例如使用批量插入。
OPEN z;
LOOP
FETCH z BULK COLLECT INTO z_array LIMIT z_array_size;
FORALL i IN 1..z_array.COUNT
INSERT INTO t2 VALUES z_array(i);
EXIT WHEN z%NOTFOUND;
END LOOP;
答案 1 :(得分:0)
无论如何,在使用.NET时将全局临时表声明为提交时删除也不是一个好主意。
更好的做法是在做任何你想做的事之前从gtt中删除,并在提交之后让它保持原样。调试也变得更容易了。