我最近一直在使用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()
并且返回错误:
"「」附近的语法无效
我认为我的代码上有一些语法错误,所以我复制了我的"查询"变量结果并直接在 sql 管理工作室上运行它,但它返回的结果没有任何错误。
问题是我的查询中的日语字符。在执行查询之前,我尝试先在 utf-8 上对其进行编码,但它不起作用。
所以我创建了一个视图并将所有表列名称从日语更改为普通字母表,它起作用了。我还尝试使用 pymssql 而不是 pyodbc,即使我的表列是日语,这个问题也没有出现。
谢谢。