답변:
데이터베이스 문자 세트가 UTF-8이라고 가정 해 봅시다. 이것은 최신 버전의 Oracle에서 권장되는 설정입니다. 이 경우 일부 문자는 데이터베이스에 저장하는 데 1 바이트 이상이 걸립니다.
필드를으로 정의하면 VARCHAR2(11 BYTE)
Oracle은 스토리지에 최대 11 바이트를 사용할 수 있지만 실제로는 11 자 이상의 문자를 저장할 수 없습니다. 일부 문자는 영어 이외의 문자와 같이 1 바이트 이상을 저장하기 때문입니다.
VARCHAR2(11 CHAR)
Oracle에 말한 대로 필드를 정의하면 각 바이트를 저장하는 데 걸리는 바이트 수에 관계없이 11자를 저장할 수있는 충분한 공간을 사용할 수 있습니다. 단일 문자는 최대 4 바이트를 요구할 수 있습니다.
하나는 정확히 11 바이트를위한 공간이고 다른 하나는 정확히 11자를위한 공간입니다. 유니 코드 변형과 같은 일부 문자 집합은 문자 당 하나 이상의 바이트를 사용할 수 있으므로 11 바이트 필드에는 인코딩에 따라 11 자 미만의 공백이있을 수 있습니다.
VARCHAR2
.VARCHAR2(4000 CHAR)
일부 문자에 여러 바이트의 스토리지가 필요한 경우 a 를 선언하면 4000 자 미만이 허용됩니다.