我正在尝试运行从大量来源自动生成的脚本集合。不幸的是,其中一些已生成为带有 BOM 的 UTF-8。我有一个自动删除 BOM 的系统,但它的过程有点混乱。
未能删除 BOM 会生成错误:
SP2-0042: unknown command "" - rest of line ignored.
是否可以在具有 BOM 的脚本文件上运行 SQLPLUS?
我正在尝试运行从大量来源自动生成的脚本集合。不幸的是,其中一些已生成为带有 BOM 的 UTF-8。我有一个自动删除 BOM 的系统,但它的过程有点混乱。
未能删除 BOM 会生成错误:
SP2-0042: unknown command "" - rest of line ignored.
是否可以在具有 BOM 的脚本文件上运行 SQLPLUS?
可以使用这样的脚本运行 SQLPLUS,但由于BOM,SQLPLUS 会在第一行指示错误。
可能你想问你是否可以避免这个错误 -这是不可能的,AFAIK。埃尔文也是这么想的。
您可以通过生成具有空第一行的文件来解决丢失任何信息的问题。然后你可以忽略这个错误。
这已经是 Oracle 6 年多以来一直存在的一个错误,但看起来他们对修复它并不感兴趣。
他们的“推荐解决方法”(文档 ID 788156.1第 C.6 节)是剥离 BOM 或使您的第一个脚本行成为注释,然后忽略此错误。
SP2-0042:未知命令“∩╗┐” - 忽略行的其余部分。
或者
SP2-0734:未知命令开头“-- Commen ...” - 忽略行的其余部分。
错误 13515585 详细信息(需要 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