你的SQL语句的某些部分嵌套得太深了...... pyodbc

时间:2013-07-02 13:19:00

标签: python python-2.7 pyodbc

我正在尝试使用ms sql server中的pyodbc获取数据。我收到以下错误:

  

ProgrammingError:('42000','[42000] [Microsoft] [ODBC SQL Server   驱动程序] [SQL Server] SQL语句的某些部分也是嵌套的   深。重写查询或将其分解为较小的查询。 (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()

问题是unicode问题。当我把stem_.kök改成stem_.kok时,问题就解决了。

1 个答案:

答案 0 :(得分:0)

你不需要任何“AS blah”。尝试完全相同的代码,除了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;请参阅:http://www.w3schools.com/sql/sql_join_inner.asp关于如何INNER JOIN。此外,在您的表名或表列包含大小写的任何时候,您需要将其包围在“”中,否则SQL将不知道它是否大写。