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 5812 게시물 읽기
No. 5812
PostgreSQL 8 에서 한글 검색이 안됩니다.
작성자
나그네
작성일
2005-01-19 18:34
조회수
4,097

안녕하세요.

저는 현재 PostgreSQL 8.0.0 beta5 를 쓰고 있구요.

JDBC 를 이용하여 디비와 통신을 합니다.

인코딩은 UNICODE 를 이용하거든요.

한글을 입력하거나 수정하거나 조회할때는 문제가 없는데

'=' 검색을 하면 안되네요. 근데 like 검색을 하면 됩니다.

 

즉 select * from aa where name='홍길동' 이라고 하면 검색을 못하지만 select * from aa where name like '홍길동'

이라고 하면 되네요.

어떻게 해야 할까요 ? 도움을 부탁 드립니다.

이 글에 대한 댓글이 총 5건 있습니다.
박인서(bubux)님이 2005-01-19 20:14에 작성한 댓글입니다.
이 댓글은 2005-01-19 20:29에 마지막으로 수정되었습니다.

잘되네요

감사합니다..

초보님이 2005-01-20 17:10에 작성한 댓글입니다. Edit

먼저 답변해 주셔서 감사합니다.

음.. 근데 제가 질문을 하면서 빠트린게 있습니다.

머냐면 저는 Windows XP 에서 사용중 입니다.

이럴땐 어떻게 해야하나요 ?

나그네님이 2005-01-20 19:29에 작성한 댓글입니다. Edit
김상기(ioseph)님이 2005-01-20 20:29에 작성한 댓글입니다.

곧 postgresql.or.kr 에 다가 등록을 하려고 준비중인데 간단히 쓰겠습니다.

 

XP + JDBC 인 것으로 보아, 주로 JAVA 개발하시거나, 개발용으로 사용하시는 것 같습니다.

저는 JAVA 와 아주 안친해서 자세히는 모르지만 제가 설치하고 사용하는 환경을 알려드리려고 합니다.

 

pginstaller 를 실행할때 initdb 선택창에서 initdb를 installer 에서 안하겠다고 선택하고 넘어갑니다.

 

그런다음 맘에 드시는 옵션들을 선택하시고 설치하십시오.

 

cmd 환경에 좀 익숙하다면, windows service 이름을 pgsql 혹은 pgsql8.0.0 등으로 합니다. 왜냐하면, cmd 창에서 service를 시작, 종료 시키기 편하기 때문입니다.

(pgsql 이라는 이름은 실제로 NetBSD pkgsrc 를 사용하는 시스템에 등록되는 rc script 이름입니다.)

 

설치가 끝났으면, 이제 initdb 와 service를 실행시키는 일이 남아있습니다.

 

cmd 창에서

runas /user:postgres cmd [enter] 라고 입력한 후,

Program Files\PostgreSQL\bin 으로 이동합니다.

cd 하신후, 탐색기에서 icon을 drag 하면 편해서 전 그방법을 주로 씁니다. ;-)

 

자 이제 initdb ../data -E=UNICODE --no-locale 로 initdb 해줍니다.

이런 방법으로, 사용자 정의가 가능하죠.

그리고, DB CHARSET 은 UNICODE 이고 LC_* 값은 C 값이므로 가장 일반적인 경우가 되게 만들 수 있습니다.

 

위에서 \data 가 아니라 /data 해서도 작동합니다. (\data는 안해봐서 모름)

 

끝났으면, /data 아래에 pg_log 디렉토리를 만듭니다.

(안만들어도 상관없습니다. 8.0 postgresql.conf 의 기본값이라서 밑에 부분을 몇군데 수정하면 자동으로 생성됩니다.)

 

다음 -- Where to Log -- 부분을 찾아서 조금 수정합니다.

(아랫부분은 clipboard copy가 아니라 옆에 있는 window 화면 보고 베끼는 것이니까 참조만 하세요)

 

log_destination = 'stderr'

# 주석을 풀고, stderr 로 지정: eventlog를 안쓰려고 합니다.

(win32 사용자라고 하더라도 개발용으로 쓸 거면, file system에 기록하는 방법을 더 선호했었던 기억이 있어서..)

 

redirect_stderr = true

# log file 에 다가 써넣기 위해서..

 

log_directory='pg_log'

# 주석해제 ($PGDATA, 혹은 %PGDATA%에서 상대경로)

log_filename='postgresql%-.log"

# 주석을 풀고, postgresql%-로 바꿉니다. 가급적이면 원본을 보존하고 복사해서 편집하십시오. %를 사용한 이유는 %가 하나도 없으면, postmaster가 timestamp를 이름 뒤에 붙여 넣어 버립니다.

 

그 다음 log level 등을 조정하시고, 저장합니다.

 

자 이제 net start pgsql (혹은 동등한 이름)

 

하면 끝입니다.

 

그다음은 PATH가 설정되어 있는 디렉토리에다가 ...

없다면 %WINDIR% 에다가 pcmd.cmd 라는 batch 화일을 하나 만듭니다.

그 이유는 EDITOR 나 PSQL_EDITOR 등의 환경 변수를 local로 정의해서 사용하기 위해서 입니다.

저는 Service For Unix 3.5 와 vim이 같이 설치되어 있어서, SFU 에 들어 있는 vi 가 한글이 안되는 관계로 PSQL_EDITOR 환경 변수를 설정해서 씁니다.

(혹은 그때 그때 editplus 로 바꾸어 사용합니다.)

예제는 다음과 같습니다.

 

#####

cd 주로 작업할 디렉토리

setlocal

SET PATH=C:\Program Files\PostgreSQL\8.0\bin;%PATH%

SET PSQL_EDITOR=C:\****\editplus.exe

REM SET (기타 필요한 설정)

cmd

endlocal

#####

 

이렇게 해서 pcmd.cmd 로 저장하고, 시작 -> 실행 -> pcmd 한후, 생기는 command 창에서 psql 을 사용하면, 흔히 사용하는 *nix 계열에서 psql 사용하는 것과 비슷하리라고 봅니다.

 

 

 

 

박인서(bubux)님이 2005-01-20 21:15에 작성한 댓글입니다.
이 댓글은 2005-01-21 07:14에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5819한글깨짐 pgsql 7.4.5 [7]
pgsql
2005-01-23
4659
5818파일경로 저장하는데 역슬러쉬 "\"가 저장이 안되네요 [3]
초보자
2005-01-21
2977
5817PHP + PostgreSQL 에서의 DB세션 제어 문제.. [7]
신기배
2005-01-20
3212
5812PostgreSQL 8 에서 한글 검색이 안됩니다. [5]
나그네
2005-01-19
4097
5811[인덱스 문제] [2]
가시고기
2005-01-19
1999
5810function생성시 에러가 나요 [2]
초보
2005-01-19
2275
5809postgresql.or.kr 오프라인 모임 한 번 합시다. [6]
김상기
2005-01-19
1814
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다