CHARACTER_LENGTH 스칼라 함수

CHARACTER_LENGTH 함수는 지정된 문자열 단위로 표시되는 표현식의 길이를 리턴합니다.

Read syntax diagramSkip visual syntax diagram CHARACTER_LENGTHCHAR_LENGTH (expression USINGCODEUNITS16CODEUNITS32OCTETS,CODEUNITS16CODEUNITS32OCTETS )

스키마는 SYSIBM입니다.

표현식
내장 문자, 2진 또는 그래픽 문자열또는 부울 값을 리턴하는 표현식입니다.
CODEUNITS16, CODEUNITS32 또는 OCTETS
다음과 같이 결과의 문자열 단위를 지정합니다.
  • CODEUNITS16은 결과가 16비트 UTF-16 코드 단위로 표현됨을 지정합니다.
  • CODEUNITS32는 결과가 32비트 UTF-32 코드 단위로 표시됨을 지정합니다.
  • OCTETS는 결과가 바이트 단위로 표시됨을 지정합니다.
문자열 단위가 CODEUNITS16 또는 CODEUNITS32로 지정되고 expression이 2진 문자열 또는 FOR BIT DATA 문자열인 경우 오류가 리턴됩니다(SQLSTATE 428GC).

문자열 단위 인수가 지정되지 않고 expression이 FOR BIT DATA가 아닌 문자열이거나 그래픽 문자열인 경우 기본값은 CODEUNITS32입니다. 그렇지 않으면 기본값은 OCTETS입니다.

자세한 정보는 "문자열"에서 "내장 함수의 문자열 단위"를 참조하십시오.

결과

함수의 결과는 대형 정수입니다. 인수가 널(NULL)일 수 있는 경우, 결과는 널(NULL)일 수 있습니다. 인수가 널(NULL)인 경우, 결과는 널(NULL) 값입니다.

문자와 그래픽 문자열의 길이에는 뒤 공백이 포함됩니다. 가변 길이 문자열의 길이는 실제 길이이고 최대 길이가 아닙니다.

예:

  • NAME이 'Jürgen' 값을 포함하는 Unicode UTF-8로 인코딩된 VARCHAR(128) 컬럼이라고 가정해 보십시오. 다음 두 쿼리는 6 값을 리턴합니다.
       SELECT CHARACTER_LENGTH(NAME, CODEUNITS32)
       FROM T1 WHERE NAME = 'Jürgen'
    
       SELECT CHARACTER_LENGTH(NAME, CODEUNITS16) 
       FROM T1 WHERE NAME = 'Jürgen'
    다음 2개의 쿼리는 7 값을 리턴합니다.
       SELECT CHARACTER_LENGTH(NAME, OCTETS)
       FROM T1 WHERE NAME = 'Jürgen'
    
       SELECT LENGTH(NAME)
       FROM T1 WHERE NAME = 'Jürgen'
  • 다음 예는 유니코드 문자열 &N~AB'에 대해 작업합니다. 여기서 '&'는 음악 기호 높은음자리표 문자이고 '~'는 결합된 틸드 문자입니다. 이 문자열은 다음 예에서 여러 가지 유니코드 인코딩 양식으로 표시됩니다.
      '&' 'N' '~' 'A' 'B'
    UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
    UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
    UTF-32BE X'0001D11E' X'0000004E' X'00000303 ' X'00000041 ' X'00000042 '
    UTF8_VAR 변수에 문자열의 UTF-8 표현이 포함된다고 가정해 봅시다.
       SELECT CHARACTER_LENGTH(UTF8_VAR, CODEUNITS16),
         CHARACTER_LENGTH(UTF8_VAR, CODEUNITS32),
         CHARACTER_LENGTH(UTF8_VAR, OCTETS)
       FROM SYSIBM.SYSDUMMY1
    각각 값 6, 5 및 9를 리턴합니다.
    UTF16_VAR에 문자열의 UTF-16BE 표현이 포함된다고 가정해 봅시다.
       SELECT CHARACTER_LENGTH(UTF16_VAR, CODEUNITS16),
          CHARACTER_LENGTH(UTF16_VAR, CODEUNITS32),
          CHARACTER_LENGTH(UTF16_VAR, OCTETS)
       FROM SYSIBM.SYSDUMMY1
    각각 값 6, 5 및 12를 리턴합니다.