Question

Quel est l'équivalent Python DatabaseMetaData

Était-ce utile?

La solution

Ce 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 cette information vous aidera.

L'ANSI SQL-92 et SQL-99 standard exige la INFORMATION_SCHEMA schéma , qui stocke les informations en ce qui concerne les tables dans un catalogue.

Les métadonnées que vous cherchez peut être récupéré avec une requête sur les vues dans 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 à mettre en œuvre cette partie de la norme. Oracle, par exemple, ne fonctionne pas.

Heureusement, il y a aussi des tables spécifiques à la base de données qui stockent ce genre d'information.

Alors que Microsoft SQL Server prend en charge la chose INFORMATION_SCHEMA, il y a aussi des tables SQL spécifiques au serveur qui donnent des informations plus de métadonnées. Ce sont [CatalogName].dbo.sysobjects et [CatalogName].dbo.sysolumns. requêtes similaires sur ces tables vous donnera les métadonnées que vous cherchez. 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';

Si 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 ce que la connexion db dont vous disposez pour les données opérationnelles, sous réserve des approbations de sécurité bien sûr

Autres conseils

Si votre prêt à utiliser ODBC pour l'accès aux données, vous pouvez utiliser pyodbc, http: //code.google.com/p/pyodbc/wiki/Features . Pyodbc vous permet d'appeler des fonctions comme SQLTables, ce qui équivaut à la fonction JDBC getTables. Les fonctions JDBC et ODBC pour obtenir des métadonnées sont extrêmement similaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top