Debian의 감사 테이블에 대한 Oracle 데이터베이스 문자 집합 문제

Debian의 감사 테이블에 대한 Oracle 데이터베이스 문자 집합 문제

Debian Linux에 Oracle XE가 설치되어 있고 문자 집합이 AL32UTF8로 구성되어 있습니다. 영어가 아닌 프랑스어 등 다양한 로케일을 사용하여 Windows에서 데이터베이스에 연결하는 여러 클라이언트 애플리케이션이 있습니다. 이러한 응용 프로그램이 데이터베이스에 저장하는 모든 클라이언트 데이터는 괜찮습니다. 변환된 것은 없으며 프랑스어로 된 텍스트 데이터는 올바르게 표시됩니다.

하지만 감사 테이블의 텍스트는 '??????'처럼 보입니다. 영어가 아닌 문자가 포함된 경우. 감사 레코드가 다른 로캘의 데이터베이스로 이동하고 클라이언트의 세계화/로캘 설정에 종속되지 않기 때문이라고 생각합니다.

이 세계화 문제를 어떻게 해결할 수 있습니까? 감사해요!

답변1

가능한 옵션은 감사 데이터가 프랑스어로 올바르게 저장되었지만 클라이언트가 이를 지원하지 않으므로 Oracle 클라이언트가 프랑스어 문자를 ???로 변환하는 것입니다. 당신을 위한.

  1. 클라이언트/환경의 NLS_LANG은 무엇입니까? (예를 들어 사용자 환경에서)
  2. 데이터가 sys.aud$ 테이블에 올바르게 저장되었는지 확인하려면 다음을 실행하세요.

SELECT username, ascii(username) from DBA_AUDIT_TRAIL; --선택적으로 WHERE 절을 사용하여 몇 개의 의심되는 행으로 제한합니다.

만약 모든 ??? 문자는 동일한 ASCII 코드를 가지며 Oracle은 ???를 저장합니다. 만약 매 ??? 다른 ASCII 코드가 있는 경우 Oracle은 프랑스어 문자를 저장하고 클라이언트 NLS_LANG 구성은 프랑스어 문자를 지원하지 않습니다.

문제 해결에 도움이 되길 바랍니다...

관련 정보