是否可以在使用BOM编码为UTF-8的文件上运行SQLPLUS脚本

Phi*_*ing 7 oracle plsql byte-order-mark utf-8

我正在尝试运行已从大量源自动生成的脚本集合.不幸的是,其中一些已生成为带有BOM的UTF-8.我已经建立了一个自动删除BOM的系统,但它有点混乱.

未能删除BOM会生成错误:

SP2-0042: unknown command "" - rest of line ignored.
Run Code Online (Sandbox Code Playgroud)

是否可以在具有BOM的脚本文件上运行SQLPLUS?

Ami*_*idu 6

这个错误在 Oracle 中已经存在了 6 年多了,但看起来他们并没有兴趣修复它。

\n\n

他们的“推荐解决方法”(文档 ID 788156.1第 C.6 节)是删除 BOM 或将第一个脚本行添加为注释,然后忽略此错误。

\n\n
\n

SP2-0042:未知命令“\xe2\x88\xa9\xe2\x95\x97\xe2\x94\x90” - 行的其余部分被忽略。

\n
\n\n

或者

\n\n
\n

SP2-0734:以“--Commen...”开头的未知命令 - 行的其余部分\n 被忽略。

\n
\n\n

Bug 13515585 详细信息(需要 OTN 登录):

\n\n
Bug 13515585: ADD SUPPORT FOR THE UTF-8 BOM IN SQLPLUS\nBug Status: Internal (Oracle) Review \nCreated: 19-Dec-2011 \nUpdated: 29-Sep-2015\n
Run Code Online (Sandbox Code Playgroud)\n


Pet*_*van 4

可以使用这样的脚本运行 SQLPLUS,但由于BOM的原因,SQLPLUS 将在第一行指示错误。
也许您想问是否可以避免此错误 -这是不可能的,据我所知。埃尔文也这么认为。

您可以通过生成第一行为空的这些文件来解决丢失任何信息的问题。然后你就可以忽略这个错误。