错误:COPY分隔符必须是单个单字节字符

vch*_*tta 8 postgresql postgresql-copy

我想将带有分隔符"〜,〜"的平面文件中的数据加载到PostgreSQL表中.我已经尝试过如下,但看起来对分隔符有限制.如果COPY语句不允许使用多个字符作为分隔符,有没有其他方法可以执行此操作?

metadb=# \COPY public.CME_DATA_STAGE_TRANS FROM 'E:\Infor\Outbound_Marketing\7.2.1\EM\metadata\pgtrans.log' WITH      DELIMITER AS '~,~'
ERROR:  COPY delimiter must be a single one-byte character
\copy: ERROR:  COPY delimiter must be a single one-byte character
Run Code Online (Sandbox Code Playgroud)

Sus*_*adi 10

如果您使用的是Vertica,可以使用E'\ t'或U&'\ 0009'

要指示非打印分隔符(例如选项卡),请在扩展字符串语法(E'...')中指定字符.如果您的数据库启用了StandardConformingStrings,请使用Unicode字符串文字(U&'...').例如,使用E'\ t'或U&'\ 0009'将制表符指定为分隔符.


use*_*723 1

不太确定您是在寻找 postgresql 解决方案还是只是通用解决方案。

如果是我,我会打开一份 vim(或 gvim)并运行命令:%s/~,~/~/g
,将所有“~,~”替换为“~”。