在 SQLDeveloper 中批量执行多个插入语句

Execute multiple insert statements as batch in SQLDeveloper

我有一个脚本,在单个 table 上有大约 2600 个插入语句。喜欢下面

insert into STUDENT(NAME, ROLL) VALUES('Bob', 1);
insert into STUDENT(NAME, ROLL) VALUES('Ron', 2);
.
.
insert into STUDENT(NAME, ROLL) VALUES('Jack', 2600);

我是 运行 这个脚本 (Oracle DB) 按 F9 它开始逐行执行并花费很多时间。

有什么方法可以一次执行它们吗?

注意:插入脚本是通过导出生成的,我无法按以下格式更改它

insert into STUDENT
VALUES
('Bob', 1),
('Ron', 2),
.
.
('Jack', 2600);

脚本包含单独的 INSERT INTO 语句,它们是这样执行的 - one-by-one.

如果您将数据导出到例如CSV文件,你可以

  • 已使用 SQL*装载机或
  • 外部 table 功能

做起来更快。但是,正如您没有做的那样,让脚本 运行 稍等片刻。我不认为你有任何其他选择(除非你将它分成几个较小的文件并且 运行 它们在单独的 SQL*Plus 并行连接中,但这可能需要更多的时间来准备等待当前脚本完成)。


截至 SQL*加载程序:

  • 首先,确保文本文件中有数据(由 semi-colon 等分隔)
  • 检查您的计算机上是否安装了 SQL*Loader。它与任何 Oracle 数据库一起安装,或者 - 如果您的 PC 上没有它 - Oracle 客户端软件
  • 然后创建一个控制文件,该文件使用 CSV 文件作为输入并将数据加载到目标中的适当列中 table

这是 Oracle 11g SQL*Loader 文档。阅读它需要时间,但是 - 考虑到它是一个简单的 two-column table,应该很容易做到。