【问题标题】:Preserve CR LF(New Lines) On Insert Into SQL Server在插入 SQL Server 时保留 CR LF(新行)
【发布时间】:2017-10-18 01:05:31
【问题描述】:

我正在尝试将数据插入 sql server varchar(max) 字段并保留换行符。这些是地址,换行符对于解析地址数据至关重要。我在一个窗口中运行输出以查看结果是什么,换行符在命令行中维护,但在插入 SQL Server 时没有

    for dirpath, subdirs, files in os.walk(process):
    for file in files:
        dateadded = datetime.datetime.now()
        if file.endswith(('.dbf', '.DBF')):
            dbflocation = os.path.abspath(os.path.join(dirpath, file)).lower()
            if dbflocation.__contains__("\\xxx.dbf"):
                table = DBF(dbflocation, lowernames=True, char_decode_errors='ignore')
                for record in table.records or table.deleted:
                    rec1 = record['key1']
                    rec2 = str(record['xxx1'])
                    rec3 = str(record['xxx2'])
                    rec4 = record['xxx3']
                    rec5 = str(record['xxx4'])
                    rec6 = record['address1'] #address to parse
                    # if table.delete == True:
                    #    rec42 = 1
                    cursor.execute(
                        "insert into tblepiqclaims(key1,xxx1,xxx2,xxx3,xxx4,address1) values(?,?,?,?,?,?)",
                        rec1, rec2, rec3, rec4, rec5, rec6)
                    print rec6
            cnxn.commit()

【问题讨论】:

  • 如果您通过在 SQL Server Management Studio (SSMS) 中打开表来检查表,那么它可能会欺骗您。 SSMS 不在标准网格视图中显示换行符。您可以使用CONVERT(VARBINARY, address1) 查看值是否包含0D0A(对于VARCHAR)或0D000A00(对于NVARCHAR)来验证CR_LF 换行符是否确实存在。

标签: python python-2.7 pyodbc


【解决方案1】:

您需要在 varchar 字段中定义转义字符。

例如:

输入 = '1#2#3'

打印 input.split('#')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2012-11-11
    • 2021-09-24
    • 2019-03-14
    • 2011-08-28
    • 2011-03-07
    相关资源
    最近更新 更多