当表格为空时在cx_oracle中获取列信息?
问题描述:
我正在为python日志记录模块的处理程序工作。这本质上是登录到Oracle数据库。当表格为空时在cx_oracle中获取列信息?
我正在使用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数据,我可以看到的数据类型,以及它们的大小(计数诺内斯?),但多数民众赞成缺少列名。
我该怎么办?
答
我认为description
属性可能是你正在寻找的。这将返回描述返回数据列的元组列表。如果没有行返回,它会很愉快地工作,例如:
>>> import cx_Oracle >>> c = cx_Oracle.connect("username", "password") >>> cr = c.cursor() >>> cr.execute("select * from dual where 1=0") <__builtin__.OracleCursor on <cx_Oracle.Connection to user [email protected]>> >>> cr.description [('DUMMY', <type 'cx_Oracle.STRING'>, 1, 1, 0, 0, 1)]