PAR*_*PAR 3 postgresql text escaping backslash psql
设置:Postgresql Server 9.3 - 操作系统:CentOS 6.6
尝试使用 COPY 命令将 2.5 亿条记录批量插入到 Postgresql 9.3 服务器中。数据采用管道“|”分隔格式 作为分隔符。
我要复制到的表中几乎所有列都是 TEXT 数据类型。不幸的是,在 2.5 亿条记录中,大约有 200 万条具有文本中包含“\0”的合法文本值。
示例条目:
245150963|数据源|736778|XYZNR-1B5.1|1984年12月10日00:00:00|||XYZNR-1B5.1\1984-12-10\0.5\1\ASDF1|pH|物理|水|XYZNR |河口
正如您所看到的,第 8 列的值中有一个合法的 \0。
XYZNR-1B5.1\1984-12-10\0.5\1\ASDF1
无论我如何逃避这个问题,COPY 命令都会将此 \0 转换为实际的“\x0”,或者 COPY 命令失败并显示“错误:编码“UTF8”的字节序列无效:0x00”。
我尝试用“sed -i”替换 \0:
\\0
\\\0
'\0'
\'\'0
\\\\\0
Run Code Online (Sandbox Code Playgroud)
...还有许多其他我不记得了,但它们都不起作用。
这些类型的字符串的正确转义是什么?
谢谢!
| 归档时间: |
|
| 查看次数: |
3824 次 |
| 最近记录: |