我正在使用pandas.read_sql_query函数从一些sql文件中读取。一个查询在我已经指出的某个特定位上引发了错误。
((python位-没什么异国情调,可以与其他查询一起使用)] >>
@contextmanager def open_db_connection(connection_string): pyodbc.pooling = False connection = pyodbc.connect(connection_string) try: yield connection except pyodbc.DatabaseError as err: error, = err.args sys.stderr.write(error.message) finally: connection.close() noCount = """ SET NOCOUNT ON; """ with open_db_connection(connection_string) as conn: res = pd.read_sql_query(noCount+queryObj, conn)
下面的sql引发错误,我不知道为什么会这样。前面的语句和各种临时表都可以工作,可以使用pandas.read_sql_query()进行收集,但是在下面的地方它会中断。
IF OBJECT_ID('tempdb..#test1') IS NOT NULL DROP TABLE #test1; select t.PositionID, b.SecurityID into #test1 from #tmp as t inner join placeholder.dbo.items as b on (b.PositionID = t.PositionID and b.StudyDate = '20191230') where t.ast = 'eq'; IF OBJECT_ID('tempdb..#test2') IS NOT NULL DROP TABLE #test2; select t.PositionID, case when count(i.beta_index)=0 then 1 else count(i.beta_index) end as noIndex into #test2 from #test1 as t left join #beta_index as i on (t.SecurityID = i.isin) group by t.PositionID; select * from #test2
这应该从test2返回数据。不过请注意-它执行并在SQL Server Management Studio中运行得很好。
我正在使用pandas.read_sql_query函数从一些sql文件中读取。一个查询在我已经指出的某个特定位引发错误。 (python位-没什么异国情调,可以与其他......>
一直以来的问题是,我一直在忽略/忽略SSMS中的警告消息,我认为这会导致游标不是查询,而pyodbc会引发ProgrammingError“无结果。以前的SQL并非查询。”从而导致pandas.read_sql_query()崩溃。
警告: