我正在尝试运行从大量来源自动生成的脚本集合。不幸的是,其中一些已生成为带有BOM的UTF-8。我已经建立了一个自动删除BOM的系统,但它有点混乱。
无法删除BOM会产生错误:
SP2-0042: unknown command "" - rest of line ignored.
是否可以在具有BOM的脚本文件上运行SQLPLUS?
答案 0 :(得分:4)
可以使用此类脚本运行SQLPLUS,但由于BOM,SQLPLUS将在第一行显示错误。
可能你想问一下你是否可以避免这个错误 - 它是不可能的,AFAIK。 Erwin也这么认为。
您可以通过生成第一行为空的文件来解决丢失任何信息的问题。然后你可以忽略这个错误。
答案 1 :(得分:3)
这已经成为甲骨文6年多来的一个漏洞,但看起来他们并不想修复它。
他们的'推荐解决方法'(Doc ID 788156.1 C.6节)是剥离BOM或使您的第一个脚本行成为评论,然后忽略此错误。
SP2-0042:未知命令“∩╗┐” - 忽略其余行。
或者
SP2-0734:未知命令开头“ - Commen ...” - 其余行 忽略。
Bug 13515585 Details(需要OTN登录):
Bug 13515585: ADD SUPPORT FOR THE UTF-8 BOM IN SQLPLUS
Bug Status: Internal (Oracle) Review
Created: 19-Dec-2011
Updated: 29-Sep-2015