2012-05-25 6 views
6

Sto tentando di eseguire una raccolta di script che sono stati generati automaticamente da un numero elevato di origini. Sfortunatamente alcuni di questi sono stati generati come UTF-8 con BOM. Ho installato un sistema per rimuovere automaticamente il BOM, ma è un processo un po 'disordinato.È possibile eseguire uno script SQLPLUS su un file codificato come UTF-8 con BOM

mancata rimozione della distinta base genera l'errore:

SP2-0042: unknown command "" - rest of line ignored. 

E 'possibile eseguire SQLPLUS su un file di script che ha una distinta base?

+1

Non ne ho idea, ma mi piacerebbe iniziare, cercando nel personaggio lato client set impostazione per vedere se era diverso da UTF-8. In realtà, se automatizzato, lascerei il processo per rimuovere il BOM. –

risposta

4

È possibile eseguire SQLPLUS con tale script, ma SQLPLUS indicherà un errore sulla prima riga a causa di BOM.
Probabilmente si voleva chiedere se è possibile evitare questo errore - non è possibile, AFAIK. Erwin lo pensa anche tu.

È possibile aggirare la perdita di qualsiasi informazione generando quei file con una prima riga vuota. Quindi puoi semplicemente ignorare questo errore.

+1

Purtroppo lo script SQL viene utilizzato come parte di uno script KSH. L'errore generato da SQLPlus fa scattare lo script KSH. Comunque grazie per la risposta. Conferma che la rimozione della distinta base era necessaria. –

3

Questo è stato un bug aperto con Oracle per oltre 6 anni, ma non sembra che siano interessati a risolverlo.

La "soluzione alternativa consigliata" (Doc ID 788156.1 Sezione C.6) consiste nel rimuovere la BOM o rendere la prima riga di script un commento, quindi ignorare questo errore.

SP2-0042: unknown command "" - rest of line ignored.

O

SP2-0734: unknown command beginning "-- Commen..." - rest of line ignored.

Bug 13515585 Details (richiede login 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 
Problemi correlati