I'm trying to run a collection of scripts which have been auto-generated from a large number of sources. Unfortunately some of these have been generated as UTF-8 with BOM. I have in place a system for automatically removing the BOM, but its a bit of a messy process.
Failing to remove the BOM generates the error:
SP2-0042: unknown command "" - rest of line ignored.
Is it possible to run SQLPLUS on a script file which has a BOM?
It is possible to run SQLPLUS with such script, but SQLPLUS will indicate an error on the first line because of BOM.
Probably you wanted to ask if you can avoid this error - it is not possible, AFAIK. Erwin thinks so too.
You can workaround losing any information by generating those files with an empty first line. Then you can just ignore this error.
This has been a bug open with Oracle for over 6 years now, but it doesn't look like they are interested in fixing it.
Their 'recommended workaround' (Doc ID 788156.1 Section C.6) is to strip the BOM or make your first script line a comment, and then ignore this error.
SP2-0042: unknown command "" - rest of line ignored.
Or
SP2-0734: unknown command beginning "-- Commen..." - rest of line ignored.
Bug 13515585 Details (requires OTN login):
Bug 13515585: ADD SUPPORT FOR THE UTF-8 BOM IN SQLPLUS
Bug Status: Internal (Oracle) Review
Created: 19-Dec-2011
Updated: 29-Sep-2015
来源:https://stackoverflow.com/questions/10758094/is-it-possible-to-run-a-sqlplus-script-on-a-file-encoded-as-utf-8-with-bom