暂无图片
Oracle如何导入换行数据
我来答
分享
何放
2023-06-21
Oracle如何导入换行数据

外部文件中有可能还会因为疏忽将某条记录写成了两行。由于默认情况下是根据行来判断记录,而不是根据列分隔符来区分不同的记录,所以此时这条记录会被当作两条记录来对待。

openGuass指定引号字符quote为"导入
copy cpt from ‘/home/omm/cpt.csv’ with (delimiter e’\x7F’ ,quote ‘"’ ,format csv);
image.png

db2让列分隔符号具有比较高的优先级导入
db2 “import from cpt.del of del modified by coldel0x7F delprioritychar insert into cpt”

Oracle如何导入这种换行数据?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
weizhao.zhang (anbob)

1, 把外部文件处理一下,换行符增加为2个字符,如

[root@oel7db1 ~]# cat test
a b c 2023
a b
1 d 2023
b c d
e 2023

[root@oel7db1 ~]# sed ":a;N;/2023/ s/\n/|\n/g" test
a b c 2023|
a b
1 d 2023|
b c d
e 2023|

2,  sqlldr的控制文件 定义 STR属性 定义换行符为"|\n", 如

LOAD DATA
INFILE ldr_case11_4.dat "str '|\n'

...


试试

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
何放

在模拟可能遇到的场景,换行容易遇到的,如果末尾不是2023这样替换就不是很实用吧,除了str 另外有定长的,var指定字节的,都不能根据实际情况随机应变。有个办法就是改变导出思路mogdb只指定分隔符的情况导出数据只有一行换行地方用\n,oracle就能用replace替换,两种办法不能直接导入和统一导出csv格式,实际使用还是改变导出格式实用一些

暂无图片 评论
暂无图片 有用 0
打赏 0
何放
题主
2023-06-30
copy cpt to '/home/omm/cptn.csv' with (delimiter e'\x07' );
何放


暂无图片 评论
暂无图片 有用 0
打赏 0
weizhao.zhang (anbob)

不落地最好,用一种开发语言自己写一个如java,  或找找其它工具,gateway, ETL类的

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏