私は同時にpythonとsqlを学んでいます。 ;)次のpythonスクリプトはSQLスクリプトを呼び出します。私はcsvに行くためにクエリからの出力を取得する方法を把握しようとしています。私はここまで得ている:ファイルにSQLスクリプトを呼び出すpythonスクリプトの出力を書き込む
#!/usr/bin/env python
import cx_Oracle
import sys
import csv
import os.path
import subprocess
con = cx_Oracle.connect('creden/[email protected](DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(Host =server.work.net)(Port = 3453)))(CONNECT_DATA = (SID = SQLTEST)))')
cur=con.cursor()
f=open('/usr/local/src/sql/script_01.sql')
full_sql=f.read()
sql_commands=full_sql.split(";")
for sql_command in sql_commands:
cur.execute(sql_command)
# Here is where the magic should happen
# The output of above should go to the 'test_query' file
query_results = <OUTPUT OF FOR LOOP>
c=csv.writer(open("/home/user/sqlplus/test_query/test_query.csv","w"),delimiter=";",lineterminator="\r\n")
c.writerows(query_results)
cur.close()
は、誰かが私には欠けているものを私に教えてくださいことはできますか?
Oracle DBにアクセスできないため、何が問題になるかはわかりません。 – Jeon
sqlスクリプトはうまく動作していますが、私はcsvにcur.execute(sql_command)を返す方法を理解できません。 – Secher
何かを実行するたびに結果を取得する必要があります。だから、 'results = cur.fetchall()'と 'query_results.append(results)'のようなものをforループに追加することができます。 –