从CSV文件加载数据到DB2时添加了字符?

xpszyzbs  于 2023-03-05  发布在  DB2
关注(0)|答案(1)|浏览(130)

我有一个奇怪的问题-我在我的数据库中有一个表,它是这样定义的:

CREATE TABLE MYSCHEMA.TABLE1
(
SEGMENT_1   VARCHAR(20),
SEGMENT_2   VARCHAR(20),
PRIORITY    INT
)
IN MYSCHEMA
COMPRESS YES
;

我尝试使用IBM Data Studio的数据加载功能将数据从csv文件加载到其中,csv中的数据如下所示(没有标题行):

1. SEGMENT_A | 1. SEGMENT_C | 1
1. SEGMENT_A | 2. SEGMENT_D | 3
1. SEGMENT_A | 3. SEGMENT_E | 4
2. SEGMENT_B | 1. SEGMENT_C | 2
2. SEGMENT_B | 2. SEGMENT_D | 5

数据全部加载到表中,没有任何错误。但是,由于某种原因,第一行中添加了几个字符,因此当我查询表中的所有数据时,结果如下所示:

SEGMENT_1      | SEGMENT_2    | PRIORITY
---------------|--------------|---------
»¿1. SEGMENT_A | 1. SEGMENT_C | 1
1. SEGMENT_A   | 2. SEGMENT_D | 3
1. SEGMENT_A   | 3. SEGMENT_E | 4
2. SEGMENT_B   | 1. SEGMENT_C | 2
2. SEGMENT_B   | 2. SEGMENT_D | 5

我希望数据看起来和csv文件中的完全一样,即第一行中不包含字符。
我已经使用Excel的equals函数确认,添加了这些字符的值“1. SEGMENT_A”与csv文件中其他位置未添加这些字符的值“1. SEGMENT_A”相同。
有人知道为什么会发生这种情况,以及如何解决它吗?

nhn9ugyo

nhn9ugyo1#

答案已经在毛泽东的评论中给出:
您的CSV文件似乎有BOM(字节顺序标记),请使用十六进制编辑器验证。您可以安排交付或创建没有BOM的CSV文件
在Excel中保存csv文件时,在“保存类型”下选择“CSV”而不是“CSV UTF-8”。选择“CSV”会生成一个无需添加额外字符即可加载的文件。选择其他选项也可能有效,但我尚未测试这些选项。

相关问题