這不是一個問題,而是一個先發制人的答案。 (我從這個網站得到了很多幫助&想要回報。)pymssql(python模塊)無法使用臨時表
我一直在努力與大量的SQL查詢失敗,當我試圖通過python使用pymssql運行它,但會運行良好時直接通過MS SQL。 (例如,在我的情況下,我使用MS SQL Server Management Studio在python之外運行它。)
然後我終於發現問題:pymssql無法處理臨時表。至少不是我的版本,它仍然是1.0.1。
爲了證明這一點,這裏是我的代碼片段,稍微改變,以保護任何知識產權問題:
conn = pymssql.connect(host=sqlServer, user=sqlID, password=sqlPwd, \
database=sqlDB)
cur = conn.cursor()
cur.execute(testQuery)
上面的代碼失敗(沒有返回數據,具體而言,和吐錯誤「pymssql.OperationalError: No data available.
」如果調用cur.fetchone()
)如果我有如下定義testQuery
稱之爲:
testQuery = """
CREATE TABLE #TEST (
[sample_id] varchar (256)
,[blah] varchar (256))
INSERT INTO #TEST
SELECT DISTINCT
[sample_id]
,[blah]
FROM [myTableOI]
WHERE [Shipment Type] in ('test')
SELECT * FROM #TEST
"""
但是,如果testQuery
被定義見下文工作正常。
testQuery = """
SELECT DISTINCT
[sample_id]
,[blah]
FROM [myTableOI]
WHERE [Shipment Type] in ('test')
"""
我做了谷歌搜索以及堆棧溢出內進行搜索,也找不到關於特定問題的任何信息。我還查看了在http://code.google.com/p/pymssql/wiki/FAQ
找到的pymssql文檔和常見問題解答,並沒有看到任何提及臨時表不被允許的內容。所以我想我會添加這個「問題」。
嗨@ gord-thompson,感謝您的更新!我會留下我原來的答案,只是說它有更多的細節,但我現在已經接受你的答案。 – 2016-07-27 16:24:48