首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用复制命令将数据从csv加载到postgres

使用复制命令将数据从csv加载到postgres
EN

Stack Overflow用户
提问于 2021-07-28 03:32:37
回答 1查看 498关注 0票数 0
代码语言:javascript
运行
复制
create table emp (emp_id integer,
    emp_name varchar(30),
    registered_course varchar(15),
    progress integer);

我在csv中有如下数据:

代码语言:javascript
运行
复制
emp_id, emp_name, registered_course
1,"vignesh","java",10
2,"rakesh","",

也就是说,在我的csv中,空整数列数据表示为未引用的空字符串,空varchar数据表示为""

现在,当我试图使用命令将csv上传到Postgres,而不是postgres的int列时,我可以看到NULL被插入,但是对于varchar,我可以看到它是空白/零长度字符串)。

到目前为止我的命令:

代码语言:javascript
运行
复制
String copyQuery="COPY "+tableName+"("+columns+") FROM STDIN WITH DELIMITER ',' CSV HEADER";
    

long rowsInserted;
    
try {

    rowsInserted = new CopyManager((BaseConnection) conPost)

            .copyIn(

                copyQuery,new FileReader(filePath)

                );

}

在文档:- https://www.postgresql.org/docs/current/sql-copy.html中,我可以看到NULL指定了表示null值的字符串,默认情况下它是一个未引用的CSV格式的空字符串。这就是为什么我可以看到空整数数据,它在csv中是一个未引用的空字符串,在加载后表示为

但是,现在如何使空varchar数据在csv中作为""表示为在postgres ??到目前为止,它表示为空字符串(空白/零长度)。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-28 13:07:00

使用force_null,记录在您已经链接的同一位置。

代码语言:javascript
运行
复制
copy emp from stdin with (format csv, header, force_null (registered_course));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68554050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档