Oracle-PLSQL Developer 执行多 sql 脚本卡死问题解决

2020年03月06日 18:34 · 阅读(2696) ·

开发环境

名称 版本
操作系统 Windows 10 X64
Oracle win64_11gR2_database
PLSQL Developer 11.0.4.1788(64 bit)01.179332 - Unlimited user license

参考

PLSQL执行SQL脚本文件「适用批量」- 工具使用篇

问题描述

需要把一个 Excel 中数据导入数据库表,大概有 7000 多条,我读取 Excel 数据并整合了一个 sql 脚本 02_tpsdata_init_data_TPS_OST_PS_BONUS_TEMP.sql

这个脚本很大,我首先使用 SqlPlus 执行了,大概 10 多分钟,执行完毕,没有问题。

接着使用 PLSQL Developer 来执行这个脚本,然后就一直执行没有反应,接着卡死了。

原因分析

一开始我们怀疑是到最后才 commit 导致的,后来试着 100 条50 条 insert 数据 commit 一次,50 条 insert 数据 commit 一次,到 1 条 insert 数据 commit 一次的结果都是卡死。

于是猜测是 PLSQL Developer 的问题,查资料果然发现 PLSQL Developer 执行超过 400 条左右就会卡死。

解决办法

我的猜想是既然 SqlPlus 执行能成功,那么 PLSQL Developer 有没有类似的功能,可以直接执行一个脚本文件,不是执行脚本文件里面的 sql。

通过 文件-新建-命令窗口,输入 @\路径\文件名称 就可以达到 SqlPlus 类似的效果。

测试结果

对话框执行完毕,并测试数据无问题。