加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql COPY和CSV数据带双引号

发布时间:2020-12-13 16:25:29 所属栏目:百科 来源:网络整理
导读:示例CSV行: "2012","Test User","ABC","First","71.0","","0","3","0.1","4.0","4.2","80.8","847" “First”之后的所有值都是数字列.很多NULL值刚刚引用,对. 尝试COPY: copy mytable from 'myfile.csv' with csv header quote '"'; NOPE:ERROR:类型为nu
示例CSV行:
"2012","Test User","ABC","First","71.0","","0","3","0.1","4.0","4.2","80.8","847"

“First”之后的所有值都是数字列.很多NULL值刚刚引用,对.

尝试COPY:

copy mytable from 'myfile.csv' with csv header quote '"';

NOPE:ERROR:类型为numeric的无效输入语法:“”

嗯,是的.它是一个空值.尝试2在COPY:

copy mytable from 'myfile.csv' with csv header quote '"' null '""';

NOPE:错误:CSV引用字符不能出现在NULL规范中

什么是小故事?在运行COPY之前,从文件中分出所有双引号?可以做到这一点,但我认为有一个正确的解决方案是什么是一个令人难以置信的常见问题.

虽然一些数据库产品将空字符串视为NULL值,但标准表示它们是不同的,PostgreSQL将它们视为不同.

如果您可以使用明确的表示生成CSV文件,那将是最好的.虽然您可以使用sed或某些东西将文件过滤到良好的格式,但另一个选项是将数据复制到文本列可以接受空字符串的表中,然后填充目标表. NULLIF函数可能有助于:http://www.postgresql.org/docs/9.1/interactive/functions-conditional.html#FUNCTIONS-NULLIF – 如果两个参数匹配,它将返回NULL,否则返回第一个值.所以,像NULLIF(txtcol,”):: numeric可能适用于你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读