1

ms sqlサーバーから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()

問題はユニコードの問題でした。stem_.kök を stem_.kok に変更したら、問題は解決しました。

4

1 に答える 1

0

「AS blah」は必要ありません。sql_VerbDecl = "SELECT 1;" 以外はまったく同じコードを試してください。同じエラーが発生するかどうかを確認します。これを試してみてください。正確な構文ではないかもしれませんが、アイデアは得られるはずです。INNER JOIN の方法については、httpSELECT "TBL_Stem.kök", "TBL_VerbDecl.suffix" FROM "TBL_Stem" INNER JOIN "TBL_VerbDecl" ON "TBL_Stem".node = "TBL_VerbDecl".node; ://www.w3schools.com/sql/sql_join_inner.asp を参照してください。また、テーブル名またはテーブル列に大文字が含まれる場合はいつでも、"" で囲む必要があります。そうしないと、SQL は大文字であることを認識しません。

于 2013-07-02T13:40:59.783 に答える