1

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

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][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 时,问题就解决了。

4

1 回答 1

0

你不需要任何“AS blah”。尝试完全相同的代码,除了 sql_VerbDecl = "SELECT 1;" 看看你是否得到同样的错误。试试这个,它可能不是确切的语法,但你应该明白有关如何 INNER JOIN的信息,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。此外,只要您的表名或表列包含大写字母,您就需要将其括在 "" 中,否则 SQL 将不知道它是大写的。

于 2013-07-02T13:40:59.783 回答