database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7267 게시물 읽기
No. 7267
C코드에서 postgres에 접근하여 데이터를 인서트하는 문제(UTF8)
작성자
정재한(jx2h)
작성일
2007-11-13 17:40ⓒ
2007-11-14 10:01ⓜ
조회수
6,436

안녕하세요


시스템의 텍스트파일(UTF8)을 postgres에 insert 할 일이 있어서 c코드를 작성해서 해당작업을 실시하였습니다만,

약 오만건중에서 insert된 자료는 만건정도 밖에안되고 나머지는


ERROR:  invalid byte sequence for encoding "UTF8": 0x8c

HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".


전부 이런에러를 밷고 캔슬되어 버립니다

현재 DB 인코딩은 UTF8을 사용하고있고, 소스코드쪽에서는 db커넥션 확립되면 바로 "set client_encoding='UTF8'" 요고 쿼리로 날려줍니다

시스템은 en_US.UTF-8이구요...


어떻게하면 자료누락없이 정상적으로 인서트가능할지요...

이 글에 대한 댓글이 총 4건 있습니다.

접근방법을 바꿔서 COPY명령을 사용하려고


PQprepare(conn, "stmtname", "COPY data(contents) from $1", 1, NULL);

이렇게 등록한 후 사용하고 있는데

세번째 아규먼트에 COPY를 사용하도 상관없나요?

PQprepare()에서 COPY를 지원 안하는건지 현재 작동이 안되고 있습니다...

정재한님이 2007-11-14 11:08에 작성한 댓글입니다. Edit

결국 해결한 방법이

경로 인자로 주면 프린트하는 pgsql 유저정의펑션 만들어서

외부에서 인서트문에 저펑션끼워서 루프돌리는 방법으로...

진짜 유니코드때문에 별별짓 다해보네요

정재한님이 2007-11-14 11:34에 작성한 댓글입니다. Edit

pqlib - postgresql c 인터페이스 API - 에서는 copy 관련 함수가 따로 있습니다. 그거 사용해야할 것 같네요. 


그런데, 자료를 입력하는 일에 왜 C로 작업해야하는지를 이해가 잘 안가네요. 


그냥 쉘 스크립트와 psql 명령어로 copy 명령을 사용하면 그냥 간단히 자료가 들어갈터인데 말입니다. 


utf8 문제는 파일이 정말 utf8 문자셋 파일이 맞다면, 그리고 client-server 환경이 모두 utf8 문제셋 환경이라면 뭐, 특별하게 문자셋 때문에 고생할 것도 없습니다. 


김상기(ioseph)님이 2007-11-15 11:51에 작성한 댓글입니다.

원본은 유니코드 일본어 백과사전자료입니다

정재한(jx2h)님이 2007-11-15 14:21에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7272postmaster 접속과 postgres계정으로 전환시
영광
2007-11-26
5740
7269recycled transaction log file "xxxxxxxxx..." [2]
이형규
2007-11-16
6113
7268접속이 안돼요...? [2]
맨땅
2007-11-15
5993
7267C코드에서 postgres에 접근하여 데이터를 인서트하는 문제(UTF8) [4]
정재한
2007-11-13
6436
7266UNICODE / UTF8 ?? [2]
장현성
2007-11-12
6309
7265트리거를 삭제 했는데도 계속 유효한 이유가 무엇인지 모르겠습니다.
김대헌
2007-11-08
5624
7264plpythonu에서 execute후 자료가 없을시
김병석
2007-11-08
5246
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다