2017-09-21 1 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 ... FROM STDIN을 사용할 수 있습니다.

nPgSQL도 예외입니다 (the documentation 참조).

conn.BeginTextImport을 사용 했으므로 중간에있는 것처럼 보입니다. FROM STDIN을 지정하고 리턴 된 writer을 루프하여 로컬 CSV 파일에서 행을 쓸 수 있다는 것을 알지 못한다고 상상해보십시오.