SQL Server 클라이언트를 대체해야하는 PostgreSQL 데이터베이스 클라이언트를 만들고 있습니다. 두 클라이언트 모두 C++로 작성됩니다. 지원되는 작업 중 하나는 std::string ReadChunk()
메서드를 포함하는 클래스의 지정된 인스턴스에서 대량 복사입니다.Postgres COPY FROM 데이터 형식을 삽입하기 전에
는 지금 내가 libpq를 기능을 사용
PQexec(connection, "COPY tablename FROM STDIN");
while(reader.HasNext()) {
PQputCopyData(connection, reader.ReadChunk().c_str());
}
PQputCopyEnd(connection);
을하지만 또한 너무 오래 된 varchar을 절단하고이 널 열을 대표하는 NULL
경우 \t
연속 두 사이에 삽입 할 수 있어야한다고 밝혀졌습니다. 데이터베이스 측에서이 변환을 수행하고 C 트리거 또는 유사한 것을 작성하는 방법이 있습니까? 아니면 SQL 서버 bcp_bind
과 같은 클라이언트 측에서 인수 구문 분석을 구현해야합니까?