Oracle SQLCL Export in UTF8 mit BOM

Der Export von Daten mit SQLCL funktioniert ähnlich wie beim Großvater SQLPlus.

Leider bietet SQLCL keine Option mit welcher Kodierung die Ausgabe erfolgt. Das lässt sich mit JAVA_TOOL_OPTIONS einstellen. Folgende Befehle in der Kommandozeile (oder einem CMD-Script) bringen SQLCL einmalig dazu, jede Ausgabe ins Filesystem mit UTF8 zu schreiben :

set JAVA_TOOL_OPTIONS='-Dfile.encoding=UTF-8'

Leider ergibt das aber nur UTF8 ohne BOM/Byte Order Mark.
Im Default kann SQLCL oder die CMD nun keine BOM erzeugen. Dabei handelt es sich aber nur um fest kodierte Bytes, die der Datei vorran gestellt werden: EF BB BF

Der Trick in der CMD ist, eine Datei – die nur diese Bytes enthält – dem eigentlichen Export voran zu „stellen“:

 copy utf8bom.txt+export.csv final_export.csv /B 

Die Datei utf8bom.txt steht zum Download bereit. Das Flag „/B“ ist wichtig, bringt es doch den copy-Befehl dazu, die Zeichen binär zu kopieren.

Darüber hinaus gibt es auch eine Variante mit der Powershell, die ich in einem der nächsten Beiträge erörtern möchte.

Dieser Beitrag wurde unter Oracle abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.