ORACLE의 언어셋 설정의 차이에 따른 에러

 

  • 클라이언트
    • NLS_LANG : AMERICAN_AMERICA.KO16KSC5601 (euc-kr,일반한글)
    • ORACLE 버전 : 관련없음
  • 서버
    • 언어셋 : AMERICAN_AMERICA.KO16MSWIN949 (cp949,ms949,확장완성형)
    • ORACLE 버전 : 관련없음
  • 문제점
    • 입력하는 문자열의 길이가 필드에 정의된 길이 작을 때에도
      ORA-01461: can bind a LONG value only for insert into a LONG column
      에러가 발생할 수 있다.
    • 보통 하나의 필드를 입력할 때 발생하지 않고, 한번에 두,세개를 넣을 때 발생한다.
  • 예제
    • F1 : 2001 바이트 문자열 , F2 : 2001 바이트 문자열
      • 에러가 발생.
  • 해결법
    • 클라이언트와 서버의 언어셋을 맞춰라!
  • P.S
    • 오라클 클라이언트 11g 풀, 윈도우 버전을 설치했을 경우
      NLS_LANG 설정법
      • 레지스트리 에디터에서
        HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
        에서
        NLS_LANG
        의 값을 변경


KOREAN_KOREA.KO16MSWIN949
AMERICAN_AMERICA.KO16KSC5601
AMERICAN_AMERICA.KO16MSWIN949

ORA-01461: can bind a LONG value only for insert into a LONG column


SELECT
(select value  from V$nls_parameters where PARAMETER='NLS_LANGUAGE')
||'_'||
(select value  from V$nls_parameters where PARAMETER='NLS_TERRITORY')
||'.'||
(select value from V$nls_parameters where PARAMETER='NLS_CHARACTERSET')
AS NLS_LANG
from dual



댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자