【问题标题】:Couldn't use SELECT in including Unicode characters table SQL无法在包含 Unicode 字符的表 SQL 中使用 SELECT
【发布时间】:2017-05-18 17:12:52
【问题描述】:

我使用批量插入从文本中导入数据:

BULK INSERT dbo.Infosp1 FROM  'D:\test.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR  ='\n', DATAFILETYPE='widechar')

这是我的 'D:\test.txt'(由 Endcoding : Unicode 保存):

BácHồng,Giá,3

BácHồng,Hành,2

BácHồng,Lơxanh,3

BácHồng,Xả,3

BácHồng,Ngao,5

BácHồng,Bắptàu,5

CôHòaBính,Giá,5

CôHòaBính,Càrốt,2

CôHòaBính,Chanh,2

---->This is my table. Click to show image

为什么使用 INSERT 显示 0 结果??????:

SELECT * FROM dbo.Infosp1 WHERE Khach = 'BácHồng' 

SELECT * FROM dbo.Infosp1 WHERE Khach = 'CôHòaBính'

---我认为转换数据类型存在一些问题,因为通过 Endcoding 保存此“D:\test.txt”:ANSI 有一些错误,例如:

BácH?ng,CôH?aBính。在其他情况下,当我的字段没有错误类型时,我可以使用SELECT 来显示所有结果。我想要一个解决方案可以让它工作。

【问题讨论】:

    标签: sql sql-server unicode bulkinsert string-conversion


    【解决方案1】:

    尝试在 SQL Server 中将 N 添加到 unicode 字符串文字之前:

    SELECT * FROM dbo.Infosp1 WHERE Khach = N'BácHồng' 
    

    SELECT * FROM dbo.Infosp1 WHERE Khach = N'CôHòaBính'
    


    例子:
    create table Infosp1 (Khach nvarchar(64), FirstName nvarchar(64), SomeNumber int)
    insert into Infosp1 values 
     (N'BácHồng',N'Giá',3)
    ,(N'BácHồng',N'Hành',2)
    ,(N'BácHồng',N'Lơxanh',3)
    ,(N'BácHồng',N'Xả',3)
    ,(N'BácHồng',N'Ngao',5)
    ,(N'BácHồng',N'Bắptàu',5)
    ,(N'CôHòaBính',N'Giá',5)
    ,(N'CôHòaBính',N'Càrốt',2)
    ,(N'CôHòaBính',N'Chanh',2)
    
    SELECT 'WithN' as WithOrWithoutN, * FROM dbo.Infosp1 WHERE Khach = N'BácHồng'   
    union all
    SELECT 'WithoutN',* FROM dbo.Infosp1 WHERE Khach = 'BácHồng'   
    union all 
    SELECT 'WithN', * FROM dbo.Infosp1 WHERE Khach = N'CôHòaBính'  
    union all
    SELECT 'WithoutN',* FROM dbo.Infosp1 WHERE Khach = 'CôHòaBính' 
    

    rextester 演示:http://rextester.com/WSNNX6950

    返回:

    +----------------+-----------+-----------+------------+
    | WithOrWithoutN |   Khach   | FirstName | SomeNumber |
    +----------------+-----------+-----------+------------+
    | WithN          | BácHồng   | Giá       |          3 |
    | WithN          | BácHồng   | Hành      |          2 |
    | WithN          | BácHồng   | Lơxanh    |          3 |
    | WithN          | BácHồng   | Xả        |          3 |
    | WithN          | BácHồng   | Ngao      |          5 |
    | WithN          | BácHồng   | Bắptàu    |          5 |
    | WithN          | CôHòaBính | Giá       |          5 |
    | WithN          | CôHòaBính | Càrốt     |          2 |
    | WithN          | CôHòaBính | Chanh     |          2 |
    | WithoutN       | CôHòaBính | Giá       |          5 |
    | WithoutN       | CôHòaBính | Càrốt     |          2 |
    | WithoutN       | CôHòaBính | Chanh     |          2 |
    +----------------+-----------+-----------+------------+
    

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2020-05-06
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多