سؤال

ما يعادل بيثون ل DatabaseMetaData

هل كانت مفيدة؟

المحلول

وهذه ليست إجابة-الثعبان محدد؛ في الحقيقة أنا لا أعرف إذا كان لديك برامج تشغيل البيانات بيثون هذا النوع من الشيء. ولكن ربما سوف تساعد هذه المعلومات.

وو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'

وليس كل قواعد تنفيذ هذا الجزء من المعيار. أوراكل، على سبيل المثال، لا.

لحسن الحظ، هناك أيضا جداول قاعدة البيانات الخاصة التي تقوم بتخزين هذا النوع من المعلومات.

وفي حين أن مايكروسوفت 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')

في أوراكل، يمكن الجدول ALL_TAB_COLUMNS تعطيك المعلومات:

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

وإذا كنت الاستعلام عن العرض القياسية أو وجهات النظر ديسيبل محددة، لا تحتاج ODBC للقيام بهذه الاستفسارات - يمكنك استخدام أي اتصال ديسيبل لديك المتاحة للبيانات التشغيلية، بشرط الحصول على الموافقات الأمنية بالطبع

نصائح أخرى

وإذا كان لديك استعداد لاستخدام ODBC للوصول إلى البيانات ثم هل يمكن استخدام pyodbc، HTTP: //code.google.com/p/pyodbc/wiki/Features . Pyodbc يسمح لك لاستدعاء وظائف مثل SQLTables، وهو ما يعادل وظيفة JDBC getTables. وظائف JDBC وODBC للوصول إلى بيانات التعريف مشابهة للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top