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 10219 게시물 읽기
No. 10219
Linux C 프로그램에서 postgresql DB에 한글 Insert 시 Insert 실패 문제
작성자
초보DB
작성일
2020-12-22 10:25ⓒ
2020-12-22 10:32ⓜ
조회수
1,437

Linux 환경 ( EUC-KR ) 에서 C언어로 작성한 프로그램에서 postgresql DB에 한글을 Insert 할 때 

"EUC_KR" 인코딩에서 사용할 수 없는 문자가 있음" 와 같은 에러가 발생합니다. Database의 언어셋은

|   인코딩  |       Collate      |       Ctype       |

|EUC_KR | ko_KR.euckr   | ko_KR.euckr |

| UTF8      | ko_KR.UTF-8 |  ko_KR.UTF8 |

처럼 구성을 하고 2가지 경우 모두 테스트 한 결과

한글의 길이가 길어 c 배열 사이즈에 맞게 잘라 Insert 를 하는데 

한글 중간에서 길이가 잘릴 경우 위와 같은 에러와 함께 insert 가 되지 않습니다.

ex) '가나다' 라는 문자열을 insert 할때 길이가 6이 아닌 5로 잘라서 사용할 경우 insert 실패

혹시 위와 같은 문제를 해결할 수 있는 방법은 없을까요? 특정길이 이상인 경우 강제로 한글이 안나오는부분을 찾아 잘라서 사용합니다만 근본적인 문제를 해결할 수 있는 방안이 있는지 궁금합니다.
 

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

PostgreSQL 데이터베이스 서버는 기업 친화적인 데이터베이스가 아니라서,

인코딩에 맞는 문자가 아니면 거부합니다.

이는 날짜 시간 관련 자료형에서도 마찬가지입니다. 날짜가 아니면, 시간이 아니면 거부합니다.


근본적인 해결책은 인코딩에 맞지 않는 자료를 데이터베이스에 담지 않는 것입니다.


이게 업무 요건에 맞지 않다면, 보다 기업 친화적인 데이터베이스를 사용하는 것이 좋습니다.

김상기(ioseph)님이 2020-12-22 13:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10223pgadmin4 원격접속 [2]
전호진
2021-01-05
1399
10221PostgreSQL tuple 에 대해 공부하다 질문드립니다. [1]
허원석
2021-01-01
1542
10220array_to_string 사용 쿼리 질문 드립니다. [1]
이요남
2020-12-22
1410
10219Linux C 프로그램에서 postgresql DB에 한글 Insert 시 Insert 실패 문제 [1]
초보DB
2020-12-22
1437
10218원격지 파일로 data import [1]
궁금
2020-12-21
1301
10217pg 세션 처리 문제 [3]
궁금
2020-12-17
1573
10216PostgreSQL Vacuum에 관해 [3]
GOmadafter
2020-12-16
1519
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.059초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다