使用python和mssq插入特殊字符

2024-06-11 08:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python和MSSQL中,使用pyodc Im试图在表中创建一个名为athemation°的列,但是当Im创建行时:

cmd = (" CREATE TABLE " + tableName + "_fly" +" ("
" [Azimuth (°)] float,"
") ")

已创建表,但在标题中使用此名称: 方位角(度)

有什么建议吗?在

提前谢谢


Tags: 名称cmd标题createtablefloatflyim
2条回答

这并不能回答您的问题,但是知道方位角字符°是MSSQL中支持的标识符可能会有所帮助。在

有效数据库标识符的规则已经提到here,您可以选择匹配的数据库版本。 方位角字符是Unicode字符,是Latin-1_Supplement块下3.2标准库的一部分。在

2019年2月将不再是Python的问题。pyodbc 4.0.25使用正确的列名创建表。在


(原始答案)

即使在指定utf-8作为源代码时,我也能够使用pyodbc重现您的问题。在

但是,我使用pymssql得到了正确的结果:

# -*- coding: utf-8 -*-
import pymssql

cnxn = pymssql.connect(
    server='localhost',
    port='52865',
    user='sa',
    password='whatever',
    database='myDb',
    autocommit=True)
crsr = cnxn.cursor()

sql = """\
CREATE TABLE tableName_fly (
    [ID] INT IDENTITY PRIMARY KEY,
    [Azimuth (°)] FLOAT
    )
"""
crsr.execute(sql)

crsr.close()
cnxn.close()

相关问题 更多 >