2010-04-21 2 views
2

최근 한 상표의 기호가 하나의 Oracle 데이터베이스에서 다른 데이터베이스로 복사되고 있지만, ? '.'US7ASCII'로 구성된 Oracle 데이터베이스에 유니 코드 텍스트를 저장하는 방법이 있습니까

우리는 대상 데이터베이스가 'US7ASCII'문자 집합으로 구성된이 문제를 추적했습니다. 불행히도이 문제를 해결하기 위해 데이터베이스를 재구성하는 것은 현재 우리가 할 수있는 일이 아닙니다.

서버에 구성된 문자 집합 이외의 문자 집합을 사용하도록 특정 열을 정의 할 수있는 방법이 있습니까?

답변

5

VARCHAR2 열 대신 NVARCHAR2 열을 사용할 수 있습니다. NLS_DATABASE_PARAMETERS보기에서 NVARCHAR2 문자 집합을 확인하십시오.이 문자 집합은 항상 유니 코드를 지원합니다.

+0

내가 사용하고있는 일부 응용 프로그램이 NVARCHAR2를 읽는 데 문제가있는 것처럼 보일지라도 내 원래의 문제가 해결 된 것으로 보입니다. 하지만 이것이 또 다른 문제가 될 것입니다. –

0

UTF-7 encoding을 사용하면 임의의 유니 코드 문자열을 7 비트 인코딩으로 저장할 수 있습니다. 유니 코드 텍스트의 UTF-7 인코딩은 완벽하게 올바른 ASCII 텍스트입니다.

물론 이것은 값을 사용하고 싶을 때마다 특별한주의가 필요합니다. 왜냐하면이 값은 그대로 읽을 수 없기 때문입니다 (그리고 UTF-7은 거의 사용되지 않을 정도로 거의 모든 곳에서 지원되지 않습니다).

또는 BASE64와 같은 일반적인 인코딩을 사용할 수도 있지만 거의 ASCII 텍스트라도 해당 인코딩에서 완전히 읽을 수 없다는 단점이 있습니다. 즉, 적어도 무언가를 사람이 읽을 수없는 경우, 일부는 이 아니며 인코딩이 올바르게 처리됩니다.