ich möchte Daten aus Oracle in FlatFiles schreiben
und dabei die Kommaseparierung per Parameter über-
geben.
Ich habe zwei Möglichkeiten gefunden
mit DEFINE
DEF SEP=’,’
spo output
select 1||’&SEP’||2 from dual
spo off
mit SET COLSEP
set colsep ‚,‘
spo output
select 1,2 from dual
spo off
Das Problem bei Variante 1 ist, dass mir in den ersten
beiden Zeilen die Variablen Substitution angezeigt wird.
old 1: select 1||’&SEP’||2 from dual
new 1: select 1||’,’||2 from dual
1,2
und bei Variante 2, dass ich Spaces zwischen den Ausgabe
Werten habe (mal angedeutet durch _)
_______1,_______2
Ich will einfach nur folgendes:
1,2
das kann doch eigentlich nicht so schwierig sein oder ??
mein Vorschlag: String selbst „zusammenschrauben“, ohne Variable zu verwenden:
select trim (to\_char(1)) || ',' || trim (to\_char(2)) from dual;
trim eliminiert führenden und nachfolgenden whitespace.
Ist vielleicht nicht die schönste, jedoch eine sicher funktionierende Methode (vor allem ohne lange in der Oracle-Doku zu suchen)
Das Problem bei Variante 1 ist, dass mir in den ersten
beiden Zeilen die Variablen Substitution angezeigt wird.
old 1: select 1||’&SEP’||2 from dual
new 1: select 1||’,’||2 from dual
wie gut, wenn man ein manual hat (oder andere, die die richtige Stelle in der Doku kennen):
SET SHOW[MODE] {ON|OFF}
Controls whether SQL*Plus lists the old and new settings of a SQL*Plus
system variable when you change the setting with SET. ON lists the settings; OFF suppresses the listing. SHOWMODE ON has the same
behavior as the obsolete SHOWMODE BOTH.
und bei Variante 2, dass ich Spaces zwischen den Ausgabe
Werten habe (mal angedeutet durch _)
_______1,_______2
In diesem Fall wirst du um COLUMN-Befehle (COLUMN NAME FORMAT ) nicht herumkommen, ansonsten mit TRIM() usw.