在使用 cx_Oracle 调用一个简单的存储过程时,我可以轻松地从过程中取回数据,如下所示:
db = db_class() #Sets up stuff, etc.
conn = db.connect() #Returns a connection to the database
cursor = conn.cursor()
l_results = cursor.var(cx_Oracle.CURSOR)
res = cursor.callproc("PROG.DATA.GET_EVENTS", [1,2,l_results])
#params = siteID, userID, ref cursor
Run Code Online (Sandbox Code Playgroud)
res[2] 最终成为某种可枚举的,我可以像这样轻松地迭代:
data = [row for row in res[2]]
我最终得到一个列表/元组列表,它为我提供了值,但我还需要列名。我尝试了以下方法:
cols = cursor.description if cursor.description is not None else [] #Returns None
cols = res[2].description if res[2].description is not None else []
#Returns an error. Same if l_results is used instead
Run Code Online (Sandbox Code Playgroud)
如何从 l_results 中获取列名?我已经确定 l_results …