Oracle - Ausgabeformatierung - SQL*Plus - Newbie

Hallo!

Ich möchte via SQL*Plus den Output einer SQL-Abfrage „aufzeichnen“. Mit spool ist das ja kein Problem. Die Größe bzw. die Formatierung der Spalteninhalte in der Ausgabe ist allerdings ein Problem.

Die SQL-Abfrage läuft gegen eine Tabelle mit 49 Spalten. In den 49 Spalten habe ich insgesamt 4 Zeichendatentypen (VARCHAR, NUMBER, DATE und LONG).

Im Standard ist linesize in SQL*Plus auf den Wert 80 gesetzt. Ich habe die Linesize erhöht und bekomme das Ergebnis nun auch in einer Line je Hit angezeigt, allerdings stimmt der Spaltentitel nicht mit dem Wert überein. Wie bekomme ich Spaltentitel und Spalteninhalt auf einen Nenner? Die Spaltentitel möchte ich im Ergebnis angezeigt bekommen, sonst würde mir ja pagesize 0 weiterhelfen.

So schaut der Output (Auszug) aus:

AAA_JAHR AAA_CTC AAA_CDD AAA_ADBT AAA_DBCRR AAA_DBKI MZF_


2006 01-SEP-06 AX02

Danke und Gruß
Alvie

PS: Wie kann ich mir über SQL in einer Tabelle nur jene Spalte anzeigen lassen die einen Eintrag haben?

Hallo Alvie,

meinst du damit:

Wie bekomme ich Spaltentitel und Spalteninhalt auf einen Nenner?

dass der Spaltentitel exakt soviel Platz einnehmen soll wie der Spalteninhalt? Wenn dem so ist, müsstest du vorher wissen, wie groß der Inhalt der jeweiligen Spalte ist. Dann könntest du mit „SELECT RPAD(‚NameDerSpalte‘,’ ',x)… from dual“ in die Spooldatei schreiben. Ich würde allerdings eher über die Erstellung einer CSV-Datei nachdenken, falls möglich.

PS: Wie kann ich mir über SQL in einer Tabelle nur jene Spalte
anzeigen lassen die einen Eintrag haben?

Einfach in die existierende WHERE-Klausel ein „AND NameDerSpalte IS NOT NULL“.

Grüßt: Guido

PS: Wie kann ich mir über SQL in einer Tabelle nur jene Spalte
anzeigen lassen die einen Eintrag haben?

Einfach in die existierende WHERE-Klausel ein „AND
NameDerSpalte IS NOT NULL“.

Entweder die Frage oder die Antwort ist falsch :wink:.

m.

Hallo Guido!

PS: Wie kann ich mir über SQL in einer Tabelle nur jene Spalte
anzeigen lassen die einen Eintrag haben?

Einfach in die existierende WHERE-Klausel ein „AND
NameDerSpalte IS NOT NULL“.

Danke für Deine Hilfe. In meinem Fall habe ich ja 49 Spalten die ich alle in die WHERE-Klausel einbeziehen müsste, um das gewünschte Ergebnis zu erhalten. Geht das nicht eleganter?

Gruß
Alvie

Hi,
nach etwas Nachdenken halte ich es für sehr gut möglich, dass sowohl Frage als auch Antwort richtig sind, allerdings nicht zusammen passen. :wink:

Also, lieber OP, verdeutliche doch noch mal anhand von klaren Worten oder Beispieldaten, was du genau gemeint hast.

Grüßt: Guido

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
nach etwas Nachdenken halte ich es für sehr gut möglich, dass
sowohl Frage als auch Antwort richtig sind, allerdings nicht
zusammen passen. :wink:

Also, lieber OP, verdeutliche doch noch mal anhand von klaren
Worten oder Beispieldaten, was du genau gemeint hast.

Grüßt: Guido

Hi Guido,

wer oder was ist ein OP?

Gruß
Alvie

Hi Guido,

wer oder was ist ein OP?

Gruß
Alvie

Hi Alvie,

entschuldige bitte die kryptische Abkürzung.
OP bist du, nämlich der O rignal P oster. Also die Person, die ein Thema neu beginnt.

So, jetzt gib uns was zum Spielen, damit dir auch geholfen werden kann.

Grüßt: Guido