gpt4 book ai didi

sql-server - 批量插入制表符分隔文件 - unescape\x09

转载 作者:行者123 更新时间:2023-12-02 12:16:04 29 4
gpt4 key购买 nike

我正在使用 BULK INSERT 将一个从 SQL Anywhere 数据库创建的文本文件加载到 SQL Server 中。我们收到的文本文件包含包含制表符的字段。它们在文本文件中转义为“\x09”。

我能让 SQL Server 识别这个转义序列吗?

有些行具有足够的这些转义序列,当我执行 BULK INSERT 时,它们会导致截断错误。我更希望 SQL Server 将它们重新转换为制表符。

<小时/>

更新(7/26):这里是示例文件数据

ID    Name      Desc
1 Value 1 Some text:\x09with tabs
2 Value 2 More Text:\x09with more\x09tabs

因此,在本例中,需要 31 个字符来表示 ID 为 2 的记录的 Desc 字段的值。但是,它应该以 25 个字符的形式插入到数据库中。

最佳答案

使用临时表:

IF OBJECT_ID('tempdb..#test1') IS NOT NULL
DROP TABLE #test1;
GO

CREATE TABLE #test1
(
ID integer NOT NULL,
Name varchar(30) NOT NULL,
[Desc] varchar(50) NOT NULL,
)


BULK
INSERT #test1
FROM 'd:\111.txt'
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
);

SELECT ID, Name, REPLACE([Desc], '\x09', ''), '\x09' AS Delimeter
--INTO YourTable
FROM #test1

关于sql-server - 批量插入制表符分隔文件 - unescape\x09,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17713790/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com