2016-02-05 115 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