2011-01-25 68 views
2

我可以在Mysql中編寫SP並使用調用語句執行。但是希望將其寫入python中。我陷入了在多行上使用sql腳本的困境。如何在Python中使用複雜的SQL腳本

conn = pyodbc.connect('DSN=MySQL;PWD=xxxx') 
csr = conn.cursor() 

Sql= 'SELECT something, something 
    FROM table 
    WHERE foo=bar 
    ORDER BY foo ' 

csr.execute(Sql) 
sqld = csr.fetchall() 
+8

放入三引號的文本 - 這樣,它不會給你,因爲換行符的語法錯誤。 – Shadikka 2011-01-25 18:12:38

+1

@Shadikka:請將您的答案作爲答案發布,而不是評論。如果只是評論,我們不能給您信任。 – 2011-01-25 18:17:24

回答

2

嘿,我不介意讓它成爲一個正確的答案。

三重引號中的字符串文字可以包含換行符,並且不會導致語法錯誤。否則(使用「字符串」或「字符串」),您需要在每個換行符之前包含反斜槓以使其正常工作。從經驗來看,這很容易搞砸。 :)

作爲一個小問題,在Python中,變量通常以小寫字母開頭,名稱以大寫字母開頭,通常會給類。

所以:

Sql = """SELECT something, something 
     FROM table 
     WHERE foo=bar 
     ORDER BY foo""" 
2

如果你不介意的開銷,看看sqlalchemy

的SQLAlchemy是Python SQL工具包和對象關係映射器,讓應用程序開發人員的全部功能和SQL的靈活性。

相關問題