簡體   English   中英

錯誤:sqlalchemy.exc.ProgrammingError中“ N”或附近的語法錯誤

[英]ERROR: syntax error at or near “N” in sqlalchemy.exc.ProgrammingError

我有一個查詢

query = '''
EXECUTE sp_executesql
N'select ex.b_id, b.code, 
    b.status as status, 
    ex.c_id, c.c_no, c.title as title,
    ex.s_id, s.s_no, s.title as s_title,
    ex.o_id, isnull(o.o_no, o._id) as o_no,
    ex.e_id, 
    ex.types
  from dbo.exercises ex
    left join XXXX o on
      (ex.b_id = o.b_id and ex.c_id = o.c_id
       and ex.s_id = o.s_id and ex.o_id = o.o_id)
    inner join YYYY b on (ex.b_id = b.b_id)
    inner join ZZZZ c on (ex.b_id = c.b_id and
      ex.c_id = c.c_id)
    inner join SSSS s on (ex.b_id = s.b_id and
      ex.c_id = s.c_id and ex.s_id = s.s_id)
  where
    -- cleaning criteria
    -- interesting data selection
    ex.b_id = @bid
  order by ex.b_id, ex.c_id, ex.s_id, ex.o_id,
    ex.o_no, ex.e_id',
N'@bid int',
@bid = ?;
'''

通過使用熊貓read_sql ,從databaase獲取數據。

from sqlalchemy import create_engine 
from sqlalchemy import event 
import pandas as pd 
pd.read_sql(query, conn, params=params, chunksize=None)

它將錯誤拋出為sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError)語法錯誤,位於“ N”附近或附近 N'select ex.b_id,b.code,..

如果您閱讀了文檔 ,將會發現PostgresSQL中沒有N'...'形式的字符串常量。 所有字符串常量都具有相同的編碼,這由會話的client_encoding設置指定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM