문제

Oracle 에서의 차이점은 무엇입:

CREATE TABLE CLIENT
(
 NAME VARCHAR2(11 BYTE),
 ID_CLIENT NUMBER
)

CREATE TABLE CLIENT
(
 NAME VARCHAR2(11 CHAR), -- or even VARCHAR2(11)
 ID_CLIENT NUMBER
)
도움이 되었습니까?

해결책

우리 가정의 문자 데이터베이스 설정은 UTF-8 을 권장 설정에서 최신 버전의 오라클도 있습니다.이 경우에는 어떤 문자보다 더 많은 1 바이트를 데이터베이스에 저장됩니다.

정의한 경우에는 분야로 VARCHAR2(11 BYTE), Oracle 까지 사용할 수 있습니다 11 일에 대한 바이트관,하지만 당신은 실제로 저장할 수 있 11 자 분야에서이기 때문에,그들 중 일부는 하나 이상의 바이트를 저장하는,예를 들어,영어가 아닌 문자입니다.

에 의해 정의 필드로 VARCHAR2(11 CHAR) 말 Oracle 사용할 수 있는 충분한 공간을 상점,11 자 방법에 상관없이 많은 바이트를 저장합니다.단일 캐릭터가 필요할 수 있습까지 4 바이트입니다.

다른 팁

하나는 정확하게 공간을 11 바이트에 대한 다른 정확히 11 자입니다.어떤 문자에서 같은 유니코드 변종 사용할 수 있는 더 이상 하나의 바이트는 당 char,라 11 바이트 필드에 있는 공간에 대한 보다 적은 11 문자 인코딩을 따라.

또한 참조 http://www.joelonsoftware.com/articles/Unicode.html

시스템 구성에 따라,크기의 CHAR mesured 바이트 단위가 다를 수 있습니다.에서의 예:

  1. 한계 분야 11 바이트
  2. 한계 분야 11 CHAR문자


결론:1CHAR 같지 않은 1 바이트입니다.

나 때문에 나는 Oracle 사용자,그러나 나는 가정의 차이가 있다고 거짓말을 사용할 때 멀티바이트 문자 집합과 같은 Unicode(UTF-16/32).이 경우에 11 바이트에 대 한 계정 수 있습 less than11 자입니다.

또한 해당 분야 유형이 다르게 취급에 관해서 강조된 문자 또는 경우,예를 들어'binaryField(ete)="été"'일치하지 않는'charField(ete)="été"수 있습니다'(을 다시 확인에 대한 오라클).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top