2016-02-05 119 views
1

我有一個Python包裝器,它讀取SQL文件並執行它。 例子:如何在通過python運行時將變量傳遞到sql文件

query=job.get_sql_from_file("$DIR/file_path/file_name.sql") 
job.execute(query) 
job.query_desc() 

$ DIR:在默認路徑下的.bashrc文件中聲明

FILE_NAME.sql:包含模式名稱和路徑讀取INPUT_FILE裝載表: 我想這條道路是動態的,將其作爲參數傳遞。 我該怎麼做?

我所知道的是什麼:

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3)) 

...但因爲我的SQL語句在.sql文件,我要傳遞的參數在該文件本身不會在我的情況下工作。

+1

你能告訴我什麼烏爾SQL文件看行,你必須傳遞給該文件是什麼? – Hackaholic

回答

1

我可以建議。您可以閱讀該文件並進行更換。

例子: 我TEST.SQL文件

select * from xxxxxx 

現在你的表

table = 'my_table' 
sql_statement = open('test.sql').read().reaplce('xxxxxx', table) 

您還可以使用格式替換 'XXXXXX':

例子: 我的測試。 sql文件

select * from {} 

現在使用的格式

sql_statement = open('test.sql').read().format('my_table') 
+0

我的SQL文件是在路徑:.. 我可以給這樣的: query = job.get_sql_from_file(「$ DIR/file_path/open('file_name.sql')。read()。replace('xxxxxx',表)」) – Hdk