Pypyodbc:在一个循环中执行存储过程,其中存储过程保存在表中

时间:2017-12-29 21:51:08

标签: python sql pandas pypyodbc

我有一张表格,其数据如下所示

Name  Query   RunDate
SP    Some_sp 12/25/2017
Sp1   Some1_sp 12/25/2017
sp_2  Some2_sp 12/25/2107

Query列具有要执行的存储过程。

def __init__(self):
    self.conn=pypyodbc.connect(connection)
    self.cursor=self.conn.cursor()
def getDatafromDB(self):
    sql = """Select * from table"""
    self.cursor.execute(sql)
    data=pd.DataFrame(self.cursor.fetchall())
    return data

我正在查询该表并将其保存为pandas日期帧。下一步是我一个接一个地执行查询列中存在的那些存储过程。有没有办法用pypyodbc做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这个:

def getDatafromDB(self):
    sql = """Select Query from table"""
    self.cursor.execute(sql)
    data=self.cursor.fetchall()
    while data:
         print(data)
         if self.cursor.nextset():
             sql = "{call "+data+"(?)}"
             params = (3,)
             cursor = connection.cursor()
             rows = cursor.execute(sql, params).fetchall()
             print(rows)
         else:
             data= None