create table emp (emp_id integer,
emp_name varchar(30),
registered_course varchar(15),
progress integer);我在csv中有如下数据:
emp_id, emp_name, registered_course
1,"vignesh","java",10
2,"rakesh","",也就是说,在我的csv中,空整数列数据表示为未引用的空字符串,空varchar数据表示为""
现在,当我试图使用命令将csv上传到Postgres,而不是postgres的int列时,我可以看到NULL被插入,但是对于varchar,我可以看到它是空白/零长度字符串)。
到目前为止我的命令:
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 ??到目前为止,它表示为空字符串(空白/零长度)。
提前感谢
发布于 2021-07-28 13:07:00
使用force_null,记录在您已经链接的同一位置。
copy emp from stdin with (format csv, header, force_null (registered_course));https://stackoverflow.com/questions/68554050
复制相似问题