복붙노트

[SQL] VARCHAR2 (n 개의 BYTE | CHAR) 기본 -> CHAR 또는 BYTE

SQL

VARCHAR2 (n 개의 BYTE | CHAR) 기본 -> CHAR 또는 BYTE

나는 스키마 선언 아래에이 코드를 지원하고있다 : -

create table sample (
        id number Primary key,
        username varchar2(100),
);

나는 Oracle 설명서에 고개 & VARCHAR2 두 선언 모드가 있습니다 VARCHAR2 (N BYTE)와 VARCHAR2 (N CHAR) 년은 명시 적으로 BYTE 또는 CHAR를 지정하지 않은 경우 및 단지 사용자 이름 VARCHAR2 (500) 500 바이트가 할당됩니다 500 개 문자를 선언?

감사,

해결법

  1. ==============================

    1.기본값은 설정되어 매개 변수 무엇이든 NLS_LENGTH_SEMANTICS 될 것입니다. 기본적으로 그 사용 문자 길이를 의미 할 수있는 옵션이 없었다 오라클의 이전 버전과 일치하는 BYTE입니다. 당신이 당신의 자신의 스키마를 정의하고 (AL32UTF8 같은) 가변 폭 문자 집합을 사용하는 경우는 거의 항상하지 바이트 문자 길이를 지정하도록하기 때문에, 난 강력하게 CHAR에 NLS_LENGTH_SEMANTICS를 설정하는 것이 좋습니다 것입니다.

    기본값은 설정되어 매개 변수 무엇이든 NLS_LENGTH_SEMANTICS 될 것입니다. 기본적으로 그 사용 문자 길이를 의미 할 수있는 옵션이 없었다 오라클의 이전 버전과 일치하는 BYTE입니다. 당신이 당신의 자신의 스키마를 정의하고 (AL32UTF8 같은) 가변 폭 문자 집합을 사용하는 경우는 거의 항상하지 바이트 문자 길이를 지정하도록하기 때문에, 난 강력하게 CHAR에 NLS_LENGTH_SEMANTICS를 설정하는 것이 좋습니다 것입니다.

  2. ==============================

    2.다음과 같은 쿼리를 사용하여 현재 값을 확인할 수 있습니다

    다음과 같은 쿼리를 사용하여 현재 값을 확인할 수 있습니다

    SELECT
      value
    
    FROM
      NLS_DATABASE_PARAMETERS
    
    WHERE
      parameter='NLS_LENGTH_SEMANTICS';
    
  3. from https://stackoverflow.com/questions/7477564/varchar2n-bytechar-default-char-or-byte by cc-by-sa and MIT license