B CHAR 대로 varchar2 의미론

이 부록에 설명하의 의견이CHARVARCHAR2업부 아이디=”/변수,값이 선언 된 길이보다 짧은 경우,선언 된 길이에 값을 빈 패드. 그래서 주어진 선언

last_name1 VARCHAR2(10) := 'STAUB';last_name2 CHAR(10) := 'STAUB'; -- PL/SQL blank-pads value

다음과 같은IFlast_name2을 포함하는 후행 공백

IF last_name1 = last_name2 THEN ...

모든 문자열 형식CHAR. 따라서 비교의 두 값이 모두 리터럴 인 경우 빈 패딩 의미가 사용됩니다. 하나의 값이 리터럴 인 경우 빈 패딩 의미는 다른 값에 데이터 유형이 있는 경우에만 사용됩니다.공백으로 채워져 있는지 여부는 변수 유형이 아닌 열 유형에 따라 달라집니다.데이터베이스 열에 문자 값을 삽입하면 오라클은 후행 공백을 제거하지 않습니다. 값이 열의 정의된 너비보다 짧으면 값을 정의된 너비로 비워 둡니다. 결과적으로 후행 공백에 대한 정보가 손실됩니다. 문자 값이 열의 정의된 너비보다 긴 경우 오라클은 삽입을 중단하고 오류를 생성합니다.데이터베이스 열에 문자 값을 삽입 할 때 오라클은 후행 공백을 제거하지 않습니다. 값이 열의 정의된 너비보다 짧으면 값을 빈 칸으로 채우지 않습니다. 문자 값은 그대로 저장되므로 정보가 손실되지 않습니다. 문자 값이 열의 정의된 너비보다 긴 경우 오라클은 삽입을 중단하고 오류를 생성합니다.참고:업데이트할 때도 동일한 규칙이 적용됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다.