Frage

Was ist der Python entspricht DatabaseMetaData

War es hilfreich?

Lösung

Dies ist kein Python-spezifische Antwort; in der Tat weiß ich nicht, wenn Python Datentreiber diese Art der Sache hat. Aber vielleicht werden diese Informationen helfen.

Der ANSI SQL-92 und SQL-99-Standard erfordert das INFORMATION_SCHEMA Schema , die Informationen speichert, in Bezug auf die Tabellen in einem Katalog.

Die Metadaten, die Sie suchen können mit einer Abfrage auf Ansichten in diesem Schema abgerufen werden.

Beispiel:

select column_name, is_nullable, data_type, character_maximum_length as maxlen 
from information_schema.columns 
where table_name = 'Products'

Nicht alle Datenbanken, dass ein Teil des Standards implementieren. Oracle zum Beispiel nicht.

Zum Glück gibt es auch Datenbank-spezifische Tabellen, die diese Art von Informationen speichern.

Während Microsoft SQL Server die information_schema Sache unterstützt, gibt es auch SQL Server-spezifische Tabellen, die mehr Metadaten-Informationen geben. Dies sind [CatalogName].dbo.sysobjects und [CatalogName].dbo.sysolumns. Ähnliche Abfragen zu diesen Tabellen geben Ihnen die Metadaten, die Sie suchen. Beispiel:

select * from [CatalogName].dbo.syscolumns 
where id = 
    (Select id from [CatalogName].dbo.sysobjects where name = 'Products')

In Oracle kann die ALL_TAB_COLUMNS Tabelle gibt Ihnen die Informationen:

select column_name, data_type, data_length, data_precision, data_scale
from ALL_TAB_COLUMNS
where table_name = 'EMP';

Ob Sie die Standardansichten oder die db-spezifischen Ansichten abfragen, müssen Sie nicht ODBC benötigen diese Abfragen zu tun - Sie was db Verbindung, die Sie zur Verfügung haben für Betriebsdaten verwenden können, vorbehaltlich der Sicherheitszulassungen natürlich

Andere Tipps

Wenn Ihr bereit ODBC für den Datenzugriff zu verwenden, dann könnten Sie Pyodbc verwenden, http: //code.google.com/p/pyodbc/wiki/Features . Pyodbc können Sie Funktionen wie SQLTables nennen, die der JDBC getTables Funktion entspricht. Die JDBC und ODBC-Funktionen auf Metadaten zu bekommen sind sehr ähnlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top