0
私はPythonでかなりうまく実行される長いSQLクエリをデータフレーム に持っていますが、何百もあるので、私のファイルを読み込み、それらを実行します。 SQL文は次のようになります。私はこれを受信した機能として、クエリを実行するとpandasデータフレームにsqlクエリを読み込んで実行する
Execute_SQL_from_a_File(QRYHOME + "qryBook" + str(BNUM) + "_" + str(IND) + ".sql", BNUM, home, conn1)
:
"SELECT IIf(Left([Milestone_Next_Expected],4)='Proc',1, \
....\
120 lines
....\
dbo.MY_data_value"
これは機能
def Execute_SQL_from_a_File(filename,home,conn1):
FORMAT1 = '%Y%m%d%H%M'
fd = open(filename, 'r')
sqlFile = fd.read()
fd.close()
KIC53 = pd.read_sql(sqlFile, conn1)
f_out = home + out1 + ".xls"
writer = pd.ExcelWriter(f_out)
KIC53.to_excel(writer,f_out)
writer.save()
これは、関数を呼び出すものですがエラー:
: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The
identifier that starts with 'SELECT
IIf(Left([Milestone_Next_Expected],4)='Proc',1,
\\\nIIf(Left([Milestone_Next_Expected],4)='Subm',2,
\\\nIIf(Left([Milestone_N' is too long. Maximum length is 128.")
私は1つの長い文字列としてSQLFILEを作成することによって、同じクエリを実行することができますので、私は、長エラーを取得していますなぜ私が把握カント:
"SELECT IIf(Left([Milestone_Next_Expected],4)='Proc',1, \
....\
120 lines
....\
dbo.MY_data_value"
任意の助けをいただければ幸いです!
がない、あなたはそれに128以上の文字を持つ列名を持っていますか? Milestone_Nで始まる –
問題のあるクエリ部分を投稿できますか?ほとんどのSQLは省略します。あなたはループしているので、ファイルの数百万のうちの1つが構文エラーを持っている可能性があります。関数内で* filename *を印刷して、トラブルシューティングが必要なものを知ってください。次にそれを開いて確認します。私はそれがそれ自身で動くことができるとは思わない。 – Parfait
1.カラム名は> 32 です。2.すべてのクエリが同じ場所で破損するため、クエリの読み込み方法はかなりわかります。 3.すべてのクエリは、Pythonにハードコードされているとうまく動作します 4. 128行のクエリの最初の6行がここにあります: "SELECT IIf(Left([Milestone_Next_Expected]、4)= 'Proc'、1、\ IIf(Left([Milestone_Next_Expected]、4)= 'Subm'、2、\ IIf(Left([Milestone_Next_Expected]、4)= 'Cond'、3、\ ([Milestone_Next_Expected]、4)= '基金'、9,0))))))))))))))))))AS [DELETE- sortby]、\ –