Was das Äquivalent Python ist zu DatabaseMetaDataWas ist das Python-Äquivalent zu JDBC DatabaseMetaData?
Antwort
Dies ist keine Python-spezifische Antwort; in der Tat, ich weiß nicht, ob Python-Datentreiber so etwas haben. Aber vielleicht hilft diese Information.
Der ANSI-Standard SQL-92 und SQL-99 erfordert die INFORMATION_SCHEMA schema, die Informationen zu den Tabellen in einem Katalog speichert.
Die Metadaten, die Sie suchen, können mit einer Abfrage für Sichten in diesem Schema abgerufen werden.
zum Beispiel:
select column_name, is_nullable, data_type, character_maximum_length as maxlen
from information_schema.columns
where table_name = 'Products'
Nicht alle Datenbanken implementieren, dass ein Teil des Standards. Oracle zum Beispiel nicht.
Glücklicherweise gibt es auch datenbankspezifische 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 Metadateninformationen geben. Diese sind [CatalogName].dbo.sysobjects
und [CatalogName].dbo.sysolumns
. Ähnliche Abfragen in diesen Tabellen geben Ihnen die gewünschten Metadaten. Beispiel:
select * from [CatalogName].dbo.syscolumns
where id =
(Select id from [CatalogName].dbo.sysobjects where name = 'Products')
In Oracle, die ALL_TAB_COLUMNS Tabelle können Sie 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 abfragen oder die db-spezifischen Ansichten, die Sie nicht ODBC müssen diese tun Queries - Sie können jede db-Verbindung verwenden, die Sie für Betriebsdaten verfügbar haben, natürlich vorbehaltlich der Sicherheitsgenehmigungen.
Oracle scheint natürlich nicht zu haben ... Es scheint, ich muss die ODBC-Route gehen, um eine Standard-Funktionalität zwischen dbs zu erhalten. – Joshua
Hmm, das ist eine Überraschung! Mit Oracle gibt es eine alternative Datentabelle, die Sie abfragen können. Ich werde die Antwort aktualisieren, um das anzuzeigen. – Cheeso
Wenn Ihr bereit für den Datenzugriff ODBC verwenden, dann könnte man Pyodbc verwenden, http://code.google.com/p/pyodbc/wiki/Features. Mit Pyodbc können Sie Funktionen wie SQLTables aufrufen, was der JDBC-getTables-Funktion entspricht. Die JDBC- und ODBC-Funktionen zum Abrufen von Metadaten sind sehr ähnlich.
- 1. Was ist schneller: JDBC oder JNDI?
- 2. Was ist JDBC Typ 5 Treiber
- 3. Was ist der Grund für das Empfangen von JDBC-Fehler beim Versuch, SonarQube 5.6 zu installieren
- 4. DatabaseMetaData # getColumns gibt ein leeres ResultSet zurück
- 5. Ist Android Unterstützung JDBC
- 6. Was ist das Äquivalent zu „OnBackKeyPress“
- 7. Was ist das Linux-Äquivalent zu MAXDWORD?
- 8. JDBC THIN Oracle mit Java6
- 9. JDBC ClassNotFoundException
- 10. Maven - Was ist der richtige Umfang für JDBC-JAR-Dateien?
- 11. Was ist das? Art?
- 12. .aktionserweiterung ... was ist das?
- 13. Was ist das ws: //?
- 14. Reflect.js, Was ist das?
- 15. Was ist das (())?
- 16. Was ist 'das' ist Javascript
- 17. Was ist der Typ 1,2,3 oder 4 eines JDBC-Treibers?
- 18. Was bedeutet * nix? Und was ist das Verhältnis zu Ruby?
- 19. Was ist das nächste, was MATLAB zu Namespaces hat?
- 20. _NSZombie_NSKeyValueUndefiniertGetter - Was ist das?
- 21. Nebeneffekt - was ist das?
- 22. Was ist das 'Ausdrucksproblem'?
- 23. Was ist das Chromobjekt?
- 24. Spring JDBC vs JDBC
- 25. JNDI-Namen - Wird das Präfix "jdbc /" benötigt?
- 26. Was ist das Projekt, das asp.mvc verzweigt?
- 27. Was ist das? Template-Methode oder was?
- 28. Was ist der beste Weg, um eine Datenbank über JDBC zu "pingen"?
- 29. Was ist das berühmteste Versionskontrollsystem?
- 30. Binär Hashing - was ist das?
Es gibt kein exaktes Äquivalent. Welche Informationen möchten Sie abrufen und welche Art von Datenbank ist das? –
Ich muss in der Lage sein, Tabellen, Spalten (Größe, Skalierung, Typ, Name), Fremdschlüssel, Primärschlüssel von Oracle und auch MySQL zu bekommen. – Joshua