1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Ausgabe aller Spaltennamen (Datenfelder) einer Tabelle

Dieses Thema im Forum "DB2" wurde erstellt von FrenchSpirit, 18 Dezember 2018.

  1. FrenchSpirit

    FrenchSpirit Aktiver Benutzer

    Hallo in die Runde,

    unter Oracle kann ich mit folgendem Syntax alle vorhandenen Feldnamen ausgeben:

    ------------------------
    select

    column_name as Spalte

    from all_tab_columns

    where table_name= 'XXX.TABELLENNAME'
    ----------------------


    Geht das mit angepasstem Syntax auch unter DB2?

    Vielen Dank und viele Grüße

    Spirit
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Prüfe, ob es information_schema.columns gibt, das ist SQL-Standard.
     
  3. FrenchSpirit

    FrenchSpirit Aktiver Benutzer

    Hallo, akretschmer,
    wow, danke für die superschnelle Antwort.

    Habe ich das so richtig verstanden?

    select

    column_name as Spalte

    from information_schema.columns

    where table_name= 'XXXXX'


    Die DB liefert mir folgenden Fehler im Explain:

    Beschreibung: [IBM][CLI Driver][DB2] SQL0204N "INFORMATION_SCHEMA.COLUMNS" ist ein nicht definierter Name. SQLSTATE=42704
     
  4. akretschmer

    akretschmer Datenbank-Guru

  5. FrenchSpirit

    FrenchSpirit Aktiver Benutzer

    Hallo, akretschmer,

    ok, ich werde bezgl. des genutzten Standards bei unserem IT-Dienstleister ein Ticket erstellen, damit ich konkret die Info bekomme, welches Schema.

    P.S. Ich habe den Threadbeitrag hier nach 20 min (!) erfolgloser google-Suche nach IBM DB2 Tabellen.- Spaltennamen erstellt.

    Ein Profi wie Du bekommt das in 2 min hin. ;))
     
    akretschmer gefällt das.
  6. FrenchSpirit

    FrenchSpirit Aktiver Benutzer

    Hallo, akretschmer,
    ich bin es nochmal. Vielleicht kann ich es mir auch einfacher machen.

    Ich möchte von einer Tabelle alle Felder abziehen, was ja mit Select * FROM TABLE ganz normal funktioniert. Blöd ist nur, dass ich eines der Felder in das Format CHAR beim Abzug umwandeln möchte. Kann ich das mit der Wildcard "*" kombinieren?

    Einfach gedacht hatte ich folgendes geschrieben:

    SELECT

    CHAR(FELD1) as FELD_1
    , *

    FROM TABLE ....


    Das funktioniert aber leider nicht. Deswegen wollte ich im Syntax alle Feldernamen untereinander schreiben, bin aber zu faul, alle 100 Spalten manuell in mein SQL zu tippen :)

    Gruß

    Spirit
     
  7. akretschmer

    akretschmer Datenbank-Guru

    das sollte prinzipiell so funktionieren. "Das funktioniert aber leider nicht" ist leider keine sinnvolle Fehlerbeschreibung. Wirf das mal so bei Google ein ...
     
  8. FrenchSpirit

    FrenchSpirit Aktiver Benutzer

    Ich dachte, es sei Dir klar, dass das nicht gehen kann und freue mich umso mehr, dass es doch geht.

    Ohne der Tabelle einen Alias zu geben, habe ich die Fehlermeldung :

    Beschreibung: [IBM][CLI Driver][DB2] SQL0104N Auf "" folgte das unerwartete Token "*".


    bekommen.

    Mit dem Alias:

    SELECT
    CHAR(BB.FELD1) AS FELD1_CHAR
    ,BB.*

    FROM TABELLE BB
    WITH UR

    geht es :)


    Vielen Dank und schöne Feiertage
    Gruß
    Spirit
     
  9. akretschmer

    akretschmer Datenbank-Guru

    das sind so die Unterschiede, in PG wäre dies nicht nötig.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden