2013-07-02 36 views
1

我想從ms sql server中使用pyodbc獲取數據。我得到以下錯誤:您的SQL語句的某些部分嵌套得太深.. pyodbc

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries. (191) (SQLExecDirectW)')

代碼如下:

 conn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=Morphemes;') 
     cursor = conn.cursor() 
     Func = list() 
     sql_VerbDecl = "SELECT (stem_.kök + conj_.suffix) as tokenn FROM TBL_Stem as stem_ INNER JOIN TBL_VerbDecl as conj_ on conj_.node = stem_.node;" 
     cursor.execute(sql_VerbDecl) 
     rows = cursor.fetchall() 

的問題是一個統一的問題。當我將stem_.kök更改爲stem_.kok時,問題解決了。

回答

0

你不需要任何「AS等等」。嘗試完全相同的代碼,除了sql_VerbDecl =「SELECT 1;」並看看你是否得到相同的錯誤。試試這個,它可能不是確切的語法,但你應該明白SELECT "TBL_Stem.kök", "TBL_VerbDecl.suffix" FROM "TBL_Stem" INNER JOIN "TBL_VerbDecl" ON "TBL_Stem".node = "TBL_VerbDecl".node;關於如何INNER JOIN,請參考:http://www.w3schools.com/sql/sql_join_inner.asp。而且,只要你的表名或表列包含大寫字母,你就需要將其包含在「」中,否則SQL將不知道它是大寫。