首页 > 解决方案 > pyodbc:包含 PIVOT 的查询

问题描述

我对包含 PIVOT (Oracle) 语句的 oracle 查询有疑问!

我从表中获取数据没有问题,但如果查询包含数据透视语句,我会收到错误:

File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\sql.py", line 1440, in read_query
    columns = [col_desc[0] for col_desc in cursor.description]

TypeError: 'NoneType' object is not iterable

关于如何解决这个问题的任何想法?提前谢谢:)

我的代码:

import pyodbc
from pandas import read_sql_query

dbInst = XXX
schema = YYY
passwd = ZZZ

connString = "Driver={Microsoft ODBC for Oracle};Server=" +  dbInst + ';Uid=' + schema + ';Pwd=' + passwd + ";"

sqlWorks = """
select 'A' as  state, 1 as value from dual
"""

sqlDoesNotWork = """
With T As 
(
  select 'A' as  state, 1 as value from dual
)
Select *
From T
Pivot
(
  Sum(Value)
  For State In ('A' As States)
)
"""

conn = pyodbc.connect(connString)
data = read_sql_query(sqlWorks, conn)
print data

data2 = read_sql_query(sqlDoesNotWork, conn)
print data2

标签: pythonoraclepivotpyodbc

解决方案


推荐阅读