我有一个SQL脚本,该脚本被调用并包含以下各行:
@@./sql/common/scripts/LX2/InsertOrUpdateDefaultValuesLongVersions.sql 'typeinterface' 'en' 'ABCD.translation.SET0136.descriptions' 'Some Long text .............. ....... ....... .......... ........... .......... ....... .......... ............. ......... ......... ............. ......... ............. .....!' 'Some Longer Text .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......!';
-- shorter version (arg4 and arg5 are long texts)
@@./sql/common/scripts/LX2/InsertOrUpdateDefaultValuesLongVersions.sql '<arg1>' '<arg2>' '<arg3>' '<arg4>' '<arg5>';
执行它时出现以下错误:
SP2-0778:脚本文件名和参数太长
因此,文件名和路径以及自变量似乎很长。
但是我找不到限制吗?
InsertOrUpdateDefaultValuesLongVersions.sql
只是将参数插入到表中(基于第一个参数)。
似乎该值很长一次可以插入,但是如何将这些长文本插入数据库?
答案 0 :(得分:1)
您确实已经达到了SQLPlus限制。
来自the Oracle doc on error SP2-0778:
原因:对于SQL * Plus,脚本文件名和脚本参数的组合长度太长。
操作:减少脚本名称和路径的长度。减少脚本参数的数量和/或大小。
此other Oracle doc指出:
您可能达到了第二个极限。似乎没有解决方法,您需要以某种方式减少命令行的长度。
另一个可能的选择是不使用SQLPlus;例如,您可以考虑使用SQLLoader(您需要将参数放入文件中。)
或者,如@APC所评论的,a new Oracle client called sqlcl似乎没有此限制。