Лучшие способы печати имен столбцов при использовании cx_Oracle

Нашел пример, используя cx_Oracle, этот пример показывает всю информацию о Cursor.description .

 import cx_Oracle from pprint import pprint connection = cx_Oracle.Connection("%s/%s@%s" % (dbuser, dbpasswd, oracle_sid)) cursor = cx_Oracle.Cursor(connection) sql = "SELECT * FROM your_table" cursor.execute(sql) data = cursor.fetchall() print "(name, type_code, display_size, internal_size, precision, scale, null_ok)" pprint(cursor.description) pprint(data) cursor.close() connection.close() 

Я хотел видеть список Cursor.description[0] (имя), поэтому я изменил код:

 import cx_Oracle import pprint connection = cx_Oracle.Connection("%s/%s@%s" % (dbuser, dbpasswd, oracle_sid)) cursor = cx_Oracle.Cursor(connection) sql = "SELECT * FROM your_table" cursor.execute(sql) data = cursor.fetchall() col_names = [] for i in range(0, len(cursor.description)): col_names.append(cursor.description[i][0]) pp = pprint.PrettyPrinter(width=1024) pp.pprint(col_names) pp.pprint(data) cursor.close() connection.close() 

Я думаю, что будут лучшие способы распечатать имена столбцов. Пожалуйста, дайте мне альтернативы новичкам на Python. 🙂

Исходный код SQLAlchemy является хорошей отправной точкой для надежных методов интроспекции базы данных. Вот как SQLAlchemy отражает имена таблиц от Oracle:

 SELECT table_name FROM all_tables WHERE nvl(tablespace_name, 'no tablespace') NOT IN ('SYSTEM', 'SYSAUX') AND OWNER = :owner AND IOT_NAME IS NULL