SQL脚本在本地sqldeveloper中运行良好,但在通过SQLPLUS运行时在IST环境中失败



我有一个SQL脚本,它有很多插入/更新操作,当我通过sqldeveloper在本地运行它时,它运行得很好。但是,当我将相同的脚本升级到其他env(基于UNIX(时,它在那里失败了。原因:有一列"逻辑";一个表的VARCHAR(1000(,可以有:特殊字符/换行符/冒号/逗号。

我的问题:如何使本地SQLDEVELOPER的行为与其他env类似?这样我就可以在本地解决错误。

您需要了解sqlplus<gt;SQL开发人员。

两者都有支持类似命令的脚本引擎,但存在显著差异。

SQL Developer是一个java程序。JDBC使用OS env来确定您的NLS会话参数,其中sqlplus使用env变量,因此在同一台机器上运行一条SQL语句很容易,两个程序之间有两个不同的结果集。

您可以使用sqldev来构建sqlplus脚本吗?

是的。但它要求您认识到这些差异,编写健壮的代码(不要假设nls_date_formats之类的东西(,并在将脚本推送到prod.之前在sqlplus中测试脚本

或者使用SQLcl而不是sqlplus来提升您的脚本——与SQLDev相同的代码/引擎。

最新更新