在oracle中批量插入

Bulk insert in oracle

我需要插入作为界面文件(文本文件)提供的大量记录。 现在正在使用这种格式插入记录。

INSERT ALL
  INTO POSTAL_CODE( postal_code,desc)
    VALUES('100','Coimbatore')
  INTO POSTAL_CODE (postal_code,desc)
    VALUES('101','Mumbai') SELECT * FROM DUAL;

但这会带来糟糕的表现。我是数据库的新手。所以请帮助我更快地插入记录。但在 db2 中,这种格式是支持的。

INSERT INTO POSTAL_CODE( postal_code,desc)
    VALUES('100','Coimbatore'), (postal_code,desc),('101','Mumbai');

但是为什么oracle不支持这种类型的插入。请帮我。我坚持这个。我需要为此使用另一种解决方案,而且应该更快....

您可以更改以下语句

INSERT INTO POSTAL_CODE( postal_code,desc) VALUES('100','Coimbatore'),
(postal_code,desc),('101','Mumbai');

要像下面那样使用 UNION,它也应该在 Oracle 中工作

INSERT INTO POSTAL_CODE( postal_code,"desc") 
select '100','Coimbatore' from dual
union all
select '99','Goa' from dual
union all
select '101','Mumbai' from dual;

您应该检查 Oracle 为此目的提供的实用程序,例如 SQL*Loader

同时检查其他 SO post Loading data from a text file to a table in oracle