Tabelle einer Oracle-Datenbank in CSV-Format exportieren

set pagesize 10000 linesize 32000 trimspool on feedback off echo off longchunksize 8000 heading off long 100000 termout off

spool Exportdatei.csv

select '"' || FELD1 ||'";"' || FELD2 ||'";"' || FELD3 ||'";"'||FELD4||'"' from Tabellenname;

Ich habe ohne Erfolg auch andere Methoden probiert ohne dass man jedes einzelne Feld der Tabelle angeben muss. Das hat nie 100% funktioniert (Man kann einen Separator angeben und nachher Leerzeichen entfernen. Wie das gehen soll findet man ziemlich oft im Internet).

Lange hat mich auch das Abschneiden der Ausgabe nach 80 Zeichen beschäftigt.

Abhilfe fand ich schließlich mit “set long 10000” und “set longchunksize 8000”

Die Werte sind natürlich variabel. Man kann div. Werte mit “show all” in sqlplus abfragen.

Mit den in der SQL-Abfrage angegebenen Separatoren geht die CSV-Datei direkt ohne Probleme in einem deutschen Excel-Programm auf.

Aufruf einer SQL-Querydatei:

$BINORACLEDIR/sqlplus $ORACLE_USERNAME/$ORACLE_PASSWORD@$ORACLE_SID @SQL-Skriptname

Ausgaben aller Tabellen:

SELECT table_name
FROM all_tables 2 ;

Tabellenstruktur ausgeben:

DESCRIBE Tabellenname

 

 

 

truncate 80 Chars terminal csv oracle export table database

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Time limit is exhausted. Please reload CAPTCHA.