-2

嗨实际上我试图将批量记录插入数据库。记录超过20000。我必须将记录插入三个表中,因为这些记录是相互关联的。例如 :

1. One sort of data into the Table 1.
 1.1 another sort of data into the Table 2.
   1.1.1 another sort of data into the Table 3.

我们可以将上述语句视为嵌套的贷款代码 hereoop。目前 m 使用 Cursor 进行上述方法,但它需要 vvvv 很长时间。等待您的宝贵建议....

4

1 回答 1

2

听起来你想要一个INSERT ALL声明。就像是

INSERT ALL
  WHEN (<<some condition>>) THEN 
    INTO table1( <<list of columns>> )
      VALUES( <<list of columns>> )
  WHEN (<<another condition>>) THEN
    INTO table2( <<list of columns>> )
      VALUES( <<list of columns>> )
  WHEN (<<third condition>>) THEN
    INTO table3( <<list of columns>> )
      VALUES( <<list of columns>> )
  SELECT <<list of columns>> 
    FROM <<source tables>>
   WHERE <<some predicates>>

最后的SELECT语句通常是您用来填充游标的任何查询。这些条件将实现您在循环内实现的任何逻辑,以确定将数据插入到哪个表中。

如果您知道游标中的行将始终插入到单个表中,则可以使用 anINSERT FIRST而不是 an INSERT ALL(其余语法保持不变),以便 Oracle 可以在第一个条件评估为 TRUE 时停止评估条件。

于 2012-04-14T19:04:01.017 回答