DB2 데이터베이스 인코딩

이 절에서는 DB2 및 DB2 for z/OS 데이터베이스 인코딩, 관련 크기 조정 정보, 고려해야 할 조치와 관련한 문제에 대한 중요한 정보를 제공합니다.

문제의 개념

멀티바이트 문자 세트(MBCS) 및/또는 인코딩 DB2를 사용할 경우 문자 길이가 아닌 바이트 크기와 관련하여 열을 처리합니다. 즉, 멀티바이트 문자 사용 시 CHAR, VARCHAR 또는 CLOB 열은 열 길이 사양보다 실제 문자 길이에 따라 더 적은 문자를 저장할 수 있습니다.

다음을 가정해보겠습니다.

1바이트 데이터의 경우 문자열이 맞게 되며 처리에 성공하게 됩니다. 그러나 멀티바이트 데이터의 경우 문자열이 맞지 않게 되어 런타임 시 오버플로우 오류가 발생하게 됩니다. 즉, 일반적으로 IBM Cúram Social Program Management 웹 클라이언트는 사용자 친화적인 방법으로 필드 크기 오류를 파악하고 보고합니다. 그러나 위의 경우에는 바이트 길이가 아닌 문자 수를 확인하기 때문에 클라이언트가 크기 불일치를 파악하지 못하게 되어 사용자가 기본 SQL Code -302 오류인 "처리하지 못한 서버 예외" 오류를 수신하게 됩니다.

Cúram의 문제 해결 방법

Cúram에서는 위의 문제 해결을 위해 데이터베이스 열 크기를 조정할 수 있는 모델링 및 빌드 시간 기능을 제공합니다. 이러한 기능은 Cúram Modeling Reference GuideCúram Server Developer's Guide에 상세하게 설명되어 있습니다.

Cúram에서는 배송 즉시 사용할 수 있도록 다양한 언어에 대한 지원을 제공하므로 MBCS 데이터에 대한 지원도 최대 확장 세트와 함께 기본적으로 사용으로 설정되어 있습니다. 이러한 확장 설정은 환경을 테스트 중인 새 사용자가 언어, 인코딩 및 데이터베이스 크기 지정으로 인해 오류에 직면하지 않을 수 있도록 하는 데 적합합니다. 또한 다른 애플리케이션으로부터 Cúram 시스템으로 데이터를 가져오거나 복사하여 붙여넣을 때 MBCS 데이터가 필요한지 찾을 수 있습니다. 그러나 이러한 기본값이 모든 환경에 대해 적합한 것은 아닙니다. 다음 절에서는 이러한 확장 설정 변경에 대한 일부 고려사항을 설명합니다.

고려해야 할 사항

데이터베이스의 문자 저장 방법과 관련하여 예기치 않은 작동을 피하려면 DB2 및 Cúram과 관련된 데이터 인코딩 요구사항을 신중하게 고려하는 것이 중요합니다.

앞의 그림에서는 데이터 길이가 최대 열 너비와 일치하는 경계 케이스를 보여줍니다. 대부분의 경우 MBCS 문자를 사용할 때조차도 대부분의 데이터가 정의된 최대 길이에 도달하지 않기 때문에 오버플로우 상황이 일어날 확률은 높지 않습니다. 그러나 이러한 오류 상황이 일어날 수도 있으므로 대비를 해야 합니다.

사용자 애플리케이션 및 환경에 적합한 데이터베이스 문자 세트 인코딩을 사용해야 합니다. 가능한 경우 사용자 요구사항을 지원하는 SBCS 및 인코딩 사용을 고려해야 합니다. 예를 들어 CP1252는 대부분의 서유럽 문자를 지원합니다. 그러나 CP1252(또는 기타 SBCS 인코딩)는 Cúram의 브라우저로 복사하여 붙여넣는 데 사용할 수 있는 다르거나 "더 넓은" 문자 세트/인코딩(예: UTF-8)에서 기인되는 문자는 지원하지 않을 수 있습니다.

DB2(또는 DB2 for z/OS) 데이터베이스 설치 시에는 SBCS 또는 MBCS 데이터에 대한 사용자 요구사항을 식별하고 Cúram 데이터베이스를 빌드하기 전에 적절한 조치를 취할 준비만 하면 됩니다.