die bevorzugte JOIN-Notation:
SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column
FROM "informix".systables AS t
JOIN "informix".syscolumns AS c ON t.tabid = c.tabid
WHERE t.tabtype = 'T'
AND t.tabid >= 100
ORDER BY t.tabname, c.colno;
oder die altmodischen Mitmach-where-Klausel Notation:
SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column
FROM "informix".systables AS t, "informix".syscolumns AS c
WHERE t.tabid = c.tabid
AND t.tabtype = 'T'
AND t.tabid >= 100
ORDER BY t.tabname, c.colno;
Vorausgesetzt Sie haben eine ausreichend aktuelle Version von IDS verwenden, können Sie kann nach Spalten sortieren, die nicht in der Auswahlliste aufgeführt sind. Wenn Sie Beschwerden erhalten, fügen Sie die Bestellspalten zur Auswahlliste hinzu.
Das Verknüpfungskriterium ist offensichtlich; Der Tabtype = 'T' listet nur Tabellen auf, nicht Views, Synonyme und andere solche Items, die in systables aufgelistet sind. Die Tabelle> 100 zeigt nur Tabellen an, die explizit in der Datenbank erstellt wurden, nicht der Systemkatalog.
Dies beinhaltet nicht die Typinformationen - wenn Sie das wollen, müssen Sie ein bisschen mehr Arbeit erledigen. Sie finden eine Datei $INFORMIXDIR/etc/xpg4_is.sql
, die eine grobe Annäherung an eine alte Version des XPG4 (X/Open Standard) Informationsschemas (daher der Dateiname) enthält. Dort gibt es Funktionen usw., um Typinformationen von syscolumns.coltype
und syscolumns.collength
in erkennbare Zeichenfolgen zu decodieren. Ich vermute jedoch stark, dass es weder DISTINCT-Typen noch andere benutzerdefinierte Typen behandelt. Ich bin entzückt, dass ich mich als falsch erwiesen habe, aber ... Wenn Sie die relevanten Teile dieser Datei zu Ihrer Datenbank hinzufügen, sollten Sie dann auch die Typinformationen erhalten können.
Beachten Sie auch, dass alle INFO-Befehle in ISQL und DB-Access im Frontend simuliert werden, nicht im IDS-Server. Grundsätzlich nehmen die Programme die Anfrage entgegen und wandeln sie in eine komplexere SQL-Anweisung um. Sehen Sie den Code in der Datei sqlinfo.ec
, die Teil von SQLCMD ist (verfügbar von IIUG Software Archive) für wie mein SQLCMD-Programm INFO-Anweisungen behandelt. (Anmerkung: Die INFO-Ausgabe von SQLCMD ist anders formatiert als die INFO-Ausgabe von ISQL und DB-Access.)
Wenn Sie etwas anderes benötigen, erweitern oder Ihre Frage klären. –
Nein, das ist genau das, was ich wollte und von der Person, die ich kannte, würde liefern! – CheeseConQueso
+1 für die Arbeit mit Informix und speziell für "LEFFLER !!!! HILFE !!!!" : D Er ist großartig! :) –