Получение информации о столбцах в cx_oracle, когда таблица пуста?

Я работаю над обработчиком модуля протокола python. Это по существу записывается в базу данных оракула.

Я использую cx_oracle, и что-то, чего я не знаю, как получить, – это значения столбца, когда таблица пуста.

cursor.execute('select * from FOO') for row in cursor: # this is never executed because cursor has no rows print '%s\n' % row.description # This prints none row = cursor.fetchone() print str(row) row = cursor.fetchvars # prints useful info for each in row: print each 

Выход:

 None <cx_Oracle.DATETIME with value [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None , None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None , None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]> <cx_Oracle.STRING with value [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]> 

Теперь, глядя на данные var, я могу видеть типы данных и их размеры (count nones?), Но в этом случае отсутствует имя столбца.

Как я могу это сделать?

Я думаю, что атрибут description может быть тем, что вы ищете. Это возвращает список кортежей, которые описывают столбцы возвращаемых данных. Он работает довольно успешно, если нет возвращенных строк, например:

 >>> импорт cx_Oracle
 >>> c = cx_Oracle.connect («имя пользователя», «пароль»)
 >>> cr = c.cursor ()
 >>> cr.execute ("select * from dual где 1 = 0")
 <__ встроенный __. OracleCursor on <cx_Oracle.Connection to user username @ local >>
 >>> cr.description
 [('DUMMY', <type 'cx_Oracle.STRING'>, 1, 1, 0, 0, 1)]