我有一个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相同的代码/引擎。