"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可能适用于你.
总结以上是内存溢出为你收集整理的postgresql COPY和CSV数据带双引号全部内容,希望文章能够帮你解决postgresql COPY和CSV数据带双引号所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)