我最近一直在使用python, 并尝试使用以下代码从我的sql server数据库中的几个表连接数据:
query = textwrap.dedent('''SELECT
A.成形日, B.ライン, B.鋳込み回数, C.型番To AS 型番, A.組名 AS 組,
F.サービスタンク, F.泥温, F.比重, F.流れ, F.一分値, F.五分値, F.揺変性, F.加温巡回,
F.珪曹添加量,
C.品番, C.型使用回数, C.肉厚,C.内面硬度,C.外面硬度,C.脱型硬度,C.裏硬度,C.反転硬度,
B.鋳込み開始時刻,B.着肉時間,B.排泥時間,B.封入時間
FROM
IOT_T_SeikeiDailyReport AS A
INNER JOIN
IOT_T_SeikeiDailyReport_Line_Detail AS B
ON
(A.成形日 = B.成形日
AND A.組名 = B.組名)
INNER JOIN
IOT_T_SeikeiDailyReport_PartNo_Detail AS C
ON
(A.組名 = C.組名
AND A.成形日 = C.成形日
AND B.ライン = C.ライン
AND B.鋳込み回数 = C.鋳込み回数)
LEFT JOIN
IOT_T_SeikeiDailyReport_MoldingDefect AS D
ON
(A.組名 = D.kumi
AND A.成形日 = D.molding_date
AND B.ライン = D.line
AND B.鋳込み回数 = D.ikomi
AND C.型番To = D.kataban)
LEFT JOIN
IOT_M_KumiLineTank AS E
ON
(A.組名 = E.組
AND B.ライン = E.ライン)
INNER JOIN
IOT_T_ServiceTank AS F
ON
( A.成形日 = F.測定日
AND E.タンク = F.サービスタンク)''')
result = cursor.execute(query).fetchall()
并返回错误:
“「”附近的语法无效
我认为我的代码上存在语法错误,因此我复制了“ query”变量结果并直接在sql management studio上运行,但返回的结果没有任何错误。
答案 0 :(得分:0)
问题是我查询的日语字符。 我曾尝试先在utf-8上对它进行编码,然后再执行查询,但这没有用。
因此,我创建了一个视图,并将所有表的列名从日语更改为普通字母,并且可以正常工作。 我还尝试使用pymssql代替pyodbc,即使我的表列是日语,也没有出现此问题。
谢谢。