当我使用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文件夹中可以从数据库服务器访问。
答案 0 :(得分:2)
大多数客户端驱动程序支持COPY
协议的包装器,允许您通过客户端驱动程序COPY ... FROM STDIN
。
nPgSQL也不例外,请参阅the documentation。
你似乎已经在那里,因为你已经使用过conn.BeginTextImport
。我想你只是没有意识到你可以指定FROM STDIN
,然后循环返回的writer
来写一个本地CSV文件中的行。