JDBCのDatabaseMetaDataと同等のPythonとは何ですか?
-
22-08-2019 - |
解決
こののpython-固有の答えではありません。 Pythonのデータドライバは、この種のものを持っている場合、実際には私は知りません。しかし、おそらくこの情報が役立ちます。
ANSI SQL-92およびSQL-99標準は、情報を記憶する INFORMATION_SCHEMAスキーマを、必要カタログ内のテーブルについて。
あなたが求めてメタデータは、そのスキーマ内のビューのクエリで取得することができます。
たとえばます:
select column_name, is_nullable, data_type, character_maximum_length as maxlen
from information_schema.columns
where table_name = 'Products'
すべてのデータベースは、標準の一部を実装していません。 Oracleは、例えば、しません。
幸い、情報のようなものを格納するデータベース固有のテーブルもあります。
Microsoft SQL ServerがINFORMATION_SCHEMAの事をサポートしていますが、、より多くのメタデータ情報を与えるSQL Server固有のテーブルもあります。これらは[CatalogName].dbo.sysobjects
と[CatalogName].dbo.sysolumns
です。これらのテーブルに同様のクエリは、あなたが求めてメタデータを提供します。例:
select * from [CatalogName].dbo.syscolumns
where id =
(Select id from [CatalogName].dbo.sysobjects where name = 'Products')
Oracleでは、ALL_TAB_COLUMNSテーブルはあなたの情報を与えることができます:
select column_name, data_type, data_length, data_precision, data_scale
from ALL_TAB_COLUMNS
where table_name = 'EMP';
あなたが標準ビューまたはDB固有のビューを照会するかどうか、あなたは、これらのクエリを実行するためにODBCは必要ありません - あなたはもちろんのセキュリティ承認の対象と運用データ、のために利用可能なものは何でもDB接続を使用することができます。
他のヒント
もしあなた、あなたがpyodbcを使用することができ、データアクセスのためのODBCを使用して喜んで、ます。http: //code.google.com/p/pyodbc/wiki/Features を。 Pyodbcは、JDBCのgetTables関数と等価である、あなたはSQLTablesのような関数を呼び出すことができます。メタデータを取得するためのJDBCおよびODBCの機能は非常に似ています。