2012-05-25 19 views
6

Próbuję uruchomić zbiór skryptów, które zostały automatycznie wygenerowane z dużej liczby źródeł. Niestety niektóre z nich zostały wygenerowane jako UTF-8 z BOM. Posiadam system do automatycznego usuwania BOM, ale jest to trochę nieuporządkowany proces.Czy można uruchomić skrypt SQLPLUS na pliku zakodowanym jako UTF-8 za pomocą BOM

nieusunięcie LM generuje błąd:

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

to możliwe, aby uruchomić SQLPLUS w pliku skryptu, który ma BOM?

+1

Nie mam pojęcia, ale chciałbym zacząć od spojrzenia na bocznej charakteru klienta zestaw ustawień, aby zobaczyć, czy to inny niż UTF-8. W rzeczywistości, jeśli jestem zautomatyzowany, zostawiłbym proces, aby usunąć BOM. –

Odpowiedz

4

Możliwe jest uruchomienie SQLPLUS za pomocą takiego skryptu, ale SQLPLUS wskaże błąd w pierwszej linii z powodu BOM.
Prawdopodobnie chciałeś zapytać, czy możesz uniknąć tego błędu - to nie jest możliwe, AFAIK. Erwin też tak myśli.

Możesz obejść, tracąc wszelkie informacje, generując te pliki z pustym pierwszym wierszem. Następnie możesz po prostu zignorować ten błąd.

+1

Niestety skrypt SQL jest używany jako część skryptu KSH. Wyjście błędu z SQLPlus wywołuje skrypt KSH. Dzięki za odpowiedź. Potwierdza to, że konieczne było zdejmowanie BOM. –

3

To był błąd otwarty w Oracle od ponad 6 lat, ale nie wygląda na to, że są zainteresowani jego naprawieniem.

Ich "zalecane obejście" (Doc ID 788156.1 sekcja C.6) polega na usunięciu BOM lub skomentowaniu pierwszego wiersza skryptu, a następnie zignorowaniu tego błędu.

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

Albo

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

Bug 13515585 Details (OTN wymaga logowania):

Bug 13515585: ADD SUPPORT FOR THE UTF-8 BOM IN SQLPLUS 
Bug Status: Internal (Oracle) Review 
Created: 19-Dec-2011 
Updated: 29-Sep-2015