使用NPGSQL将csv文件的内容写入PostgreSQL失败

5f0d552i  于 2022-12-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(195)

我在3.2.5版本的NPGSQL的帮助下将csv文件的内容写入PostgreSQL表。
我的csv的内容如下

id, value
1, 89
2, 286
3, 80
4, 107

我使用以下命令来编写

Using writer = conn.BeginTextImport("COPY tbl_test (id,value) FROM 'C:/temp/test.csv' DELIMITER ',' CSV HEADER")

当我运行代码时,这些值被写入数据库,但命令抛出以下错误消息:

Received unexpected backend message CompletedResponse. Please file a bug.

当我直接在SQLShell中运行该命令时,一切正常,因此问题似乎是由NPGSQL产生的。
下面是我在SQL Shell中使用的命令:

\COPY tbl_test(id,value) FROM 'C:/temp/test.csv' DELIMITER ',' CSV HEADER;

有没有其他人有过这样的经历?

dwbf0jvd

dwbf0jvd1#

正如github issue中的回答,您错误地使用了API。
如果您的CSV文件在客户端(Npgsql应用程序正在运行的地方),那么您应该使用COPY tbl_test(value) FROM STDIN,而不是FROM c:\temp\test.csv。当CSV文件在PostgreSQL服务器上时,使用后者。See the documentation
如果你只是想导入服务器上的文件,只需像普通SQL一样执行COPY命令--创建一个命令并使用ExecuteNonQuery执行,不要使用BeginTextImport API。

相关问题