![]() |
Direct Oracle Access und DESCRIBE TABLE
Erstmal ein "Gruezi" aus der Schweiz.
Ich verwende die DOA Komponenten 3.4.6.4 und möchte damit ein kleines Programm schreiben welches mir die Datenbank – Administration vereinfacht. Oracle Version 8i. Leider hänge ich schon früh beim ersten Problem fest. Mit einem OracleDataSet und dem folgenden SQL frage ich alle Tabellen ab und fülle dies in ein DBGrid. SELECT * FROM user_objects WHERE object_type = 'TABLE' Soweit funktioniert alles noch wunderbar. Leider habe ich etwas höhere Ansprüche als nur alle Tabellen angezeigt zu haben. Jetzt möchte ich noch, wenn eine Tabelle ausgewählt wird die Attribute dieser Tabelle angezeigt werden. Ich platziere wieder ein OracleDataSet in meinem Datenmodul und versuche es mit diesem SQL: DESC Tabelle; Leider gibt dies nur"ORA-00900: Ungültige SQL-Anweisung' zurück. Das Problem ist für mich schwer nachvollziehbar da die Abfrage ansonsten funktioniert. (Wenn ich sie im TOAD eintippe, dann geht’s.) Scheint so als würde OracleDataSet dieses SQL nicht unterstützt. Wäre froh um Hilfe. Mit freundlichen Grüssen T.Burch |
Re: Direct Oracle Access und DESCRIBE TABLE
Zitat:
Wenn Du im TOAD DESC TableName eingibst, bekommst Du auch keine Antwort im Tabellenformat zurück, sondern ein extra Fester in dem Du die Felder, Index, ... sehen kannst. Wenn Du die Infos via SQL bekommen möchtest, dann benutze die ALL_* Views (Owner = 'SYS')
SQL-Code:
Das klappt.
select * from ALL_TAB_COLUMNS where OWNER = 'TEST' and TABLE_NAME = 'TEST'
So kommt man auch an alle weiteren Infos ran (Index, Rechte, ...) Es gibt auch Systemtabellen in denen man den SQL-Text von Views, Trigger, StoredProcs, Package, ... entnehmen kann. (ALL_VIEWS, ALL_TRIGGERS, ...) Eine Beschreibung der Tabellen findest Du im Handbuch von Oracle. Es gibt noch ein paar Befehle, die kein SQL sind. z.B. die SQL*PLUS Befehle -> z.B. @ und @@, /, &, COMP (COMPUTE), CON (CONNECT), ... (SQL*PLUS ist das SQL Abfragetool von Oracle) Ich hoffe diese Info hilft Dir. ps: Herzlich willkommen bei der DP ;-) |
Re: Danke
Vielen Dank für Ihre Hilfe.
Es funktioniert jetzt wunderbar. Werde mich aber trotzdem mal mit SQL bzw. SQL * Plus beschäftigen. Mit freundlichen Grüssen T. Burch |
Re: Danke
Zitat:
In Foren wie diesem ist es üblich sich zu Dutsen. Wir sind ja unter uns :mrgreen: Alle Informationen über alle Objekte sind im Oracle via SQL zu ermitteln. Es gibt jede Menge System Tabellen. Die Views SYS.ALL_* kann ich Dir ans Herz legen, fang da an zu schauen. Es ist einfacher diese Views zu benutzen als die System Tabellen direkt. (Quelltext der Views mal anschauen ;-) Viel Spaß Dr. MaBuSE |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz