1
Python 2.7.13のファイルからSQLクエリを実行しようとしていて、結果セットを表示中に次のエラーが発生しました。 ファイル内のSQLステートメントはテーブルからのカウント(*)のように単純ですが、このロジックが機能する場合、複雑なクエリに置き換える必要があります。Python - ファイルから複数のSQLクエリを実行する
エラー
Info : (7,)
Traceback (most recent call last):
File "SQLserver_loop.py", line 19, in <module>
fields = c.fetchall()
File "pymssql.pyx", line 542, in pymssql.Cursor.fetchall (pymssql.c:9352)
pymssql.OperationalError: Statement not executed or executed statement has no re
sultset
のPythonスクリプト:
import pymssql
conn = pymssql.connect(
host=r'name',
user=r'user',
password='credential',
database='Test')
c = conn.cursor()
fd = open('ZooDatabase.sql', 'r') # Open and read the file as a single buffer
sqlFile = fd.read()
fd.close()
sqlCommands = sqlFile.split(';') # all SQL commands (split on ';')
for command in sqlCommands: # Execute every command from the input file
c.execute(command)
fields = c.fetchall()
for row in fields:
print "Info : %s " % str(row)
c.close()
conn.close()
エラーメッセージ
**SQL File - ZooDatabase.sql**
select count(*) from emp2;
select count(*) from emp1;
**Error Log with SQL print statement output:**
C:\Python27\pycode>python SQLserver_loop.py
SELECT count(*) FROM emp2
Info : (7,)
SELECT count(*) FROM emp1
Info : (7,)
Traceback (most recent call last):
File "SQLserver_loop.py", line 20, in <module>
fields = c.fetchall()
File "pymssql.pyx", line 542, in pymssql.Cursor.fetchall (pymssql.c:9352)
pymssql.OperationalError: Statement not executed or executed statement has no re
sultset
ファイル内のクエリの形式を確認してください。質問に追加してください。 – shadow0359
あなたのコードに実行時のクエリが表示されるようにして、問題の原因となっているクエリがわかるようにしてから、そのクエリがどのように見えるかを表示してください。 –
は、質問にSQL file&print statementの要求された情報を追加しました。 – Rajeev