🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[Gelöst] Liste von Tabellen und Feldern exportieren

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Libremiki
Beiträge: 49
Registriert: Fr 14. Apr 2017, 11:03

[Gelöst] Liste von Tabellen und Feldern exportieren

Beitrag von Libremiki » Mo 24. Jun 2024, 10:12

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?
Zuletzt geändert von Libremiki am Di 25. Jun 2024, 04:53, insgesamt 1-mal geändert.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Liste von Tabellen und Feldern exportieren

Beitrag von RobertG » Mo 24. Jun 2024, 12:22

Schau einmal im
Handbuch → Anhang → Informationstabellen
nach. Die dafür erforderlichen Abfragen sind abhängig von der Datenbank, die Deiner Base-Datei zugrunde liegt.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Libremiki
Beiträge: 49
Registriert: Fr 14. Apr 2017, 11:03

Re: Liste von Tabellen und Feldern exportieren

Beitrag von Libremiki » Mo 24. Jun 2024, 13:00

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?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Liste von Tabellen und Feldern exportieren

Beitrag von RobertG » Mo 24. Jun 2024, 21:08

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").
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Libremiki
Beiträge: 49
Registriert: Fr 14. Apr 2017, 11:03

Re: [Gelöst] Liste von Tabellen und Feldern exportieren

Beitrag von Libremiki » Di 25. Jun 2024, 05:00

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.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten