通过sqlplus运行大量insert语句时仅打印错误

时间:2019-06-21 21:28:09

标签: oracle sqlplus

我需要加载一个包含数千条记录的表。

我生成了一个.sql文件,如下所示:

INSERT into TABLE(OLD,NEW) VALUES('A1','B1');
INSERT into TABLE(OLD,NEW) VALUES('A2','B2');
INSERT into TABLE(OLD,NEW) VALUES('A3','B3');
(...)
INSERT into TABLE(OLD,NEW) VALUES('A500000','B500000');
COMMIT;

sqlplus打印每一个语句,输出为“已创建1行”。

这导致了非常大且无用的日志...(非常无用...在我们的更改平台上,日志在5万行之后被截断...)

如何仅记录错误的语句?

2 个答案:

答案 0 :(得分:2)

在脚本的开头添加set feedback off

  

SET FEEDBACK OFF也可以关闭在SQL或PL / SQL语句成功之后显示的语句确认消息,例如“表已创建”和“ PL / SQL过程已成功完成”。

如果您在非交互式会话中运行脚本,则可能还需要set echo off

答案 1 :(得分:-1)

仅对所有INSERT使用一个VALUES语句

INSERT into TABLE(OLD,NEW) VALUES
    ('A1','B1'),
    ('A2','B2'),
    ...
    ('A500000','B500000')
;

日志将为500000 rows created.