2017-09-21 69 views
1

私はPostgreSQLとファイルを使って作業しています(ファイルの内容をテーブルにコピーするなど)、データベースをホストするコンピュータにファイルを格納する必要があります。これを変更する機会はありますか?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ファイルを作成するフロントエンドがあります。それらのコンテンツはデータベースに格納されなければなりません。

一般的な方法は何ですか?

私が見る唯一の可能性は、フロントエンドが.csvファイルを送信するFTPサーバーをインストールすることですが、作成した.csvをftpに保存せずにその場でコンテンツがデータベースに保存されることを望みますデータベースサーバから到達可能なフォルダ。

答えて

2

ほとんどのクライアントドライバはCOPYプロトコルのラッパーをサポートしており、クライアントドライバ経由でCOPY ... FROM STDINにアクセスできます。

nPgSQLも例外ではありません。the documentationを参照してください。

conn.BeginTextImportを使用しているため、途中で表示されます。 FROM STDINを指定して、返されたwriterをループしてローカルのCSVファイルから行を書き込むことができないとわかったと思います。

関連する問題