我有一个奇怪的问题-我在我的数据库中有一个表,它是这样定义的:
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”相同。
有人知道为什么会发生这种情况,以及如何解决它吗?
1条答案
按热度按时间nhn9ugyo1#
答案已经在毛泽东的评论中给出:
您的CSV文件似乎有BOM(字节顺序标记),请使用十六进制编辑器验证。您可以安排交付或创建没有BOM的CSV文件
在Excel中保存csv文件时,在“保存类型”下选择“CSV”而不是“CSV UTF-8”。选择“CSV”会生成一个无需添加额外字符即可加载的文件。选择其他选项也可能有效,但我尚未测试这些选项。