PostgreSQL文件处理和导演

时间:2017-09-21 09:07:10

标签: database postgresql ftp

当我使用PostgreSQL和文件(例如将文件内容复制到表中)时,必须将该文件存储在托管数据库的计算机上。有没有机会改变这个?

如果我使用以下代码复制.csv文件的内容,则该路径指的是托管数据库的计算机。

     Using cmd = New NpgsqlCommand()
         Using conn = New NpgsqlConnection("Host=" & c_dbHost & ";Username=" & c_user & ";Password=" & c_password & ";Database=" & c_DBName)
             conn.Open()
             Using writer = conn.BeginTextImport("COPY tbl_test(value) FROM 'C:\temp\test.csv' DELIMITER ',' CSV HEADER;")
             End Using
         End Using
     End Using

我有一个临时创建.csv文件的前端。他们的内容必须存储在数据库中。

常见的方法是什么?

我看到的唯一可能是安装一个ftp服务器,其中前端发送.csv文件,但我希望,内容存储在数据库中,而不将创建的.csv保存在ftp文件夹中可以从数据库服务器访问。

1 个答案:

答案 0 :(得分:2)

大多数客户端驱动程序支持COPY协议的包装器,允许您通过客户端驱动程序COPY ... FROM STDIN

nPgSQL也不例外,请参阅the documentation

你似乎已经在那里,因为你已经使用过conn.BeginTextImport。我想你只是没有意识到你可以指定FROM STDIN,然后循环返回的writer来写一个本地CSV文件中的行。