Seite 1 von 1
[Gelöst] Liste von Tabellen und Feldern exportieren
Verfasst: Mo 24. Jun 2024, 10:12
von Libremiki
Ich möchte eine Liste aller Tabellen und deren Felder exportieren. Keine Daten oder Abfragen. Könnte z.B. als .csv oder . ods Format sein. Ist dies möglich?
Re: Liste von Tabellen und Feldern exportieren
Verfasst: Mo 24. Jun 2024, 12:22
von RobertG
Schau einmal im
Handbuch → Anhang → Informationstabellen
nach. Die dafür erforderlichen Abfragen sind abhängig von der Datenbank, die Deiner Base-Datei zugrunde liegt.
Re: Liste von Tabellen und Feldern exportieren
Verfasst: Mo 24. Jun 2024, 13:00
von Libremiki
Danke, da ist folgende Beispielabfrage enthalten:
Die folgende Abfrage gibt z.B. eine komplette Übersicht über alle in der Datenbank genutzten
Tabellen mit Feldtypen, Primärschlüsseln und Fremdschlüsseln:
001 SELECT
002 "A"."TABLE_NAME",
003 "A"."COLUMN_NAME",
004 "A"."TYPE_NAME",
005 "A"."NULLABLE",
006 "B"."KEY_SEQ" AS "PRIMARYKEY",
007 "C"."PKTABLE_NAME" || '.' || "C"."PKCOLUMN_NAME" AS "FOREIGNKEY FOR"
008 FROM "INFORMATION_SCHEMA"."SYSTEM_COLUMNS" AS "A"
009 LEFT JOIN "INFORMATION_SCHEMA"."SYSTEM_PRIMARYKEYS" AS "B"
010 ON ( "B"."TABLE_NAME" = "A"."TABLE_NAME" AND "B"."COLUMN_NAME" =
"A"."COLUMN_NAME" )
011 LEFT JOIN "INFORMATION_SCHEMA"."SYSTEM_CROSSREFERENCE" AS "C"
012 ON ( "C"."FKTABLE_NAME" = "A"."TABLE_NAME" AND "C"."FKCOLUMN_NAME" =
"A"."COLUMN_NAME" )
013 WHERE "A"."TABLE_SCHEM" = 'PUBLIC
Wenn ich die Abfrage ausführe dann kommt folgende Fehlermeldung:
dbaccess/source/core/api/singleselectquerycomposer.cxx:109
Weiter oben im Handbuch ist beschrieben dass SELECT * FROM "INFORMATION_SCHEMA"."SYSTEM_ALIASES" einzugeben ist aber Alles was ich probiere führt zum gleichen Ergebnis. Was mache ich falsch?
Re: Liste von Tabellen und Feldern exportieren
Verfasst: Mo 24. Jun 2024, 21:08
von RobertG
Ich hoffe, dass Du nicht die Zeilennummerierung in Deinem Code mit drin hattest, den Du als SQL-Code eingegeben hast.
Du musst das direkte Ausführen im Abfrageeditor aktivieren (Button "SQL").
Re: [Gelöst] Liste von Tabellen und Feldern exportieren
Verfasst: Di 25. Jun 2024, 05:00
von Libremiki
Danke. Ich hatte das mit und ohne Zeilennummern probiert - gleiches Ergebnis. In einem englischen Forum bekam ich folgende Abfrage:
Select
SYS_TABLES."TABLE_TYPE" as "TABLE or VIEW",
'"' || SYS_TABLES."TABLE_NAME" || '"' as "TABLE NAME",
SYS_COLUMNS."ORDINAL_POSITION" as "COLUMN POSITION",
'"' || SYS_COLUMNS."COLUMN_NAME" || '"' as "COLUMN NAME",
SYS_COLUMNS."TYPE_NAME" as "TYPE NAME",
SYS_COLUMNS."COLUMN_SIZE" as "COLUMN SIZE"
From "INFORMATION_SCHEMA"."SYSTEM_TABLES" as SYS_TABLES,
"INFORMATION_SCHEMA"."SYSTEM_COLUMNS" as SYS_COLUMNS
Where SYS_TABLES."TABLE_SCHEM" = 'PUBLIC'
and SYS_TABLES."TABLE_TYPE" IN ( 'TABLE', 'VIEW')
and SYS_TABLES."TABLE_NAME" = SYS_COLUMNS."TABLE_NAME"
Order By SYS_TABLES."TABLE_TYPE",
'"' || SYS_TABLES."TABLE_NAME" || '"',
SYS_COLUMNS."ORDINAL_POSITION"
Funktioniert ohne Fehlermeldung und ich kann das Ergebnis als .ods speichern. Hilft mir beim zusammenführen von mehreren Datenbanken. Ist auch hilfreich für eine Dokumentation.
Leider beziehen sich meine Fachkenntnisse mehr auf die Erfordernisse der Datenbank als auf SQL-Programmieren. Hauptsache es funktioniert. Dank an Alle die so etwas programmiert haben.