Quel est l'équivalent Python à DatabaseMetaDataQuel est l'équivalent Python de JDBC DatabaseMetaData?
Répondre
Ceci n'est pas une réponse spécifique à python; En fait, je ne sais pas si les pilotes de données Python ont ce genre de chose. Mais peut-être que cette info vous aidera.
La norme ANSI SQL-92 et SQL-99 requiert le INFORMATION_SCHEMA schema, qui stocke les informations concernant les tables d'un catalogue.
Les métadonnées que vous recherchez peuvent être récupérées avec une requête sur les vues de ce schéma.
par exemple:
select column_name, is_nullable, data_type, character_maximum_length as maxlen
from information_schema.columns
where table_name = 'Products'
Toutes les bases de données cette partie de mettre en œuvre la norme. Oracle, par exemple, ne le fait pas.
Heureusement, il existe également des tables spécifiques aux bases de données qui stockent ce type d'informations.
Alors que Microsoft SQL Server prend en charge l'élément Information_Schema, il existe également des tables spécifiques à SQL Server qui fournissent davantage d'informations sur les métadonnées. Ce sont [CatalogName].dbo.sysobjects
et [CatalogName].dbo.sysolumns
. Des requêtes similaires sur ces tables vous fourniront les métadonnées que vous recherchez. Exemple:
select * from [CatalogName].dbo.syscolumns
where id =
(Select id from [CatalogName].dbo.sysobjects where name = 'Products')
Dans Oracle, la table ALL_TAB_COLUMNS peut vous donner l'information:
select column_name, data_type, data_length, data_precision, data_scale
from ALL_TAB_COLUMNS
where table_name = 'EMP';
Que vous interrogez les vues standard ou les vues spécifiques à db, vous n'avez pas besoin ODBC pour faire ces requêtes - vous pouvez utiliser n'importe quelle connexion DB disponible pour les données opérationnelles, sous réserve des approbations de sécurité bien sûr.
Oracle bien sûr ne semble pas avoir cela ... Il semble que je vais devoir aller sur la route ODBC pour obtenir un ensemble standard de fonctionnalités entre dbs. – Joshua
Hmm, c'est une surprise! Avec Oracle, il existe une autre table de données que vous pouvez interroger. Je mettrai à jour la réponse pour l'indiquer. – Cheeso
Si votre prêt à utiliser ODBC pour l'accès aux données que vous pouvez ensuite utiliser pyodbc, http://code.google.com/p/pyodbc/wiki/Features. Pyodbc vous permet d'appeler des fonctions telles que SQLTables, ce qui est équivalent à la fonction getTables de JDBC. Les fonctions JDBC et ODBC pour accéder aux métadonnées sont extrêmement similaires.
- 1. Quel est l'équivalent de getytr de python
- 2. Oracle JDBC THIN avec Java6
- 3. Quel est l'équivalent de Ruby's de sys.executable de Python?
- 4. Quel est l'équivalent Ruby de os.walk de Python?
- 5. Quel est l'équivalent du REF CURSOR d'Oracle dans Postgresql lors de l'utilisation de JDBC?
- 6. La connexion JDBC est suspendue
- 7. Quel est l'équivalent clojure de l'idiome Python "if __name__ == '__main__'"?
- 8. Quel est l'équivalent "urllib2" de python dans dot net?
- 9. Python Pypi: quel est votre processus pour libérer des paquets pour différentes versions de Python? (Linux)
- 10. Quel est le nombre maximal d'arguments dans une fonction Python?
- 11. Python Eval: Quel est le problème avec ce code?
- 12. Quel est le problème avec mes boucles imbriquées en Python?
- 13. Quel est le problème avec ce code Python?
- 14. Problème de connexion JDBC
- 15. Quel est le nombre optimal de sqls en batch?
- 16. JDBC multithread
- 17. Quelle est la chaîne de connexion du pilote JDBC MySQL?
- 18. Servlet vers JDBC via JNDI
- 19. Pilote Java JDBC et TYPE_FORWARD_ONLY
- 20. Comment obtenir une liste de tables à partir de MySQL en utilisant DatabaseMetaData de Java?
- 21. À propos de JDBC RowSet
- 22. Quel est l'inconvénient de SqlBulkCopy
- 23. Quel est l'objectif de __cxa_pure_virtual?
- 24. Quel est le but des deux-points dans cette déclaration de tronçonnage de chaînes Python?
- 25. Quel est l'équivalent Python des variables d'application et de portée de session?
- 26. Quel est l'idiome OCaml équivalent à la fonction de plage de Python?
- 27. Quel est l'équivalent de Python à la méthode disponible de Java InputStream?
- 28. EJB3 Obtention d'erreurs JDBC d'origine
- 29. Quel est le problème avec ce peu de code python en utilisant lambda?
- 30. Quel module Python est adapté à la manipulation de données dans une liste?
Il n'y a pas d'équivalent exact. Quelles informations essayez-vous de tirer et de quel type de base de données s'agit-il? –
Je dois pouvoir obtenir des tables, des colonnes (taille, échelle, type, nom), des clés étrangères, des clés primaires d'Oracle et MySQL. – Joshua