안녕하세요...
환경은 php4, oracle 8i 구요.
NLS_LANG KOREAN_KOREA.KO16KSC5601 로 양쪽 맞췄습니다.
우선 http://oops.org의 mini lecture에 있는 글을 보고 clob로 적용하여 사용할려고 합니다.
그리고 영문, 숫자, 특수문자 등은 제대로 입출력이 됩니다.
헌데 insert할 때 한글만 넣으면 다음과 같이 에러가 발생합니다.
Warning: OCILobWrite: ORA-22993: 지정된 입력 합계는 실제 소스 합계보다 커야 합니다
에러나는 라인의 코드는 다음과 같고요.
echo "<hr>save: ".$clob->save($text);
물론 varchar2 같은 타입에서는 한글 잘 되고요.
nclob를 쓸려니 php.net에서도 잘 안나와 있더군요.
OCIBineByName ()에서 OCI_D_CLOB로 하고 쿼리도 EMPTY_NCLOB()로 했는데..
아무튼 clob로 해볼려고 하는데... 한글이 안되니.. 낭패군요.
technet.oracle.co.kr 에서 찾아보니 NLS_LANG을 American_America.US7ASCII로
설정하면 될거라는 글이 있던데.. 해보니 안되더군요.
varchar2 타입에 입력된 것도 다 ??로 나옵니다. 그건 안해봤습니다.
한글 빼고는 text size: 47601 bytes 까지 해봤네요.
(insert 후 select하여 text 컬럼만 strlen()으로 체크한겁니다.)
한글 문제만 해결되면 좋을텐데... 방도가 없을까요?
|