weixin_42603074
2018-12-11 04:11Python通过cx_Oracle调用过程,过程中的OUT游标怎么在Python中打开?怎么把游标中的列名提取出来?
调用数据库中包中的一个过程,过程头如下:
PROCEDURE RAITO(RETURNDS OUT REDATASET.DS,
其余IN参数
) AS
然后在Python中想用DataFrame格式显现出来,搞了半天,代码如下:
import cx_Oracle
import pandas as pd
conn = cx_Oracle.connect('mycredit/CREDIT12345@PICC_shengchan')
cur = conn.cursor()
i_cur = cur.var(cx_Oracle.CURSOR)
zz = cur.callproc("RAITO",[i_cur, '其余IN参数'])
rs = pd.DataFrame(zz)
result = []
for i in range(len(rs.T)):
result.append(rs[i][0])
rs2 = pd.DataFrame(result)
print (rs2)
有两个问题问下各位大佬:
1. ORACLE中RETURNDS(既有结果的游标)已经传入了I_CUR,各位可以看到我先把结果放到list中,再通过循环得到了上述结果,有没有比较方便的方法可以直接通过I_CUR得到结果?
2. 平常在用游标的时候我都会通过如下方法得到列名:
columnnames = []
for field in cursor.description:
columnnames.append(field[0])
可是我在上面的列子中用如下代码的时候,就会出现错误:
print(i_cur.description)
AttributeError: 'cx_Oracle.CURSOR' object has no attribute 'description'
如果是这样的话,我怎么能取到数据库游标中的列名呢?(既RETURNDS游标中的列名)
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- oracle使用游标将一个表数据插入另一个表中报错
- oracle
- 1个回答
- oracle 测试存储过程,执行一次,上次的返回结果便累加上去,如何清除?
- sql
- oracle
- 1个回答
- 分页与批处理查询? 是否可以从数据存储中批处理获取并获取游标?
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 1个回答
- 带有列的PHP中的游标分页
- laravel
- php
- 2个回答
- 存储过程和sqlsrv_num_rows - 游标错误?
- php
- 1个回答
换一换