테이블에 삽입될 값은 다음 단계에 따라 대상 열의 데이터 유형으로 변환됩니다.
값 저장 토토 결과 변환
대상과 정확히 일치하는지 확인하세요.
그렇지 않으면 표현식을 대상 유형으로 변환해 보십시오. 다음과 같은 경우에 가능합니다.과제 캐스트두 토토 결과 사이에 등록되어 있습니다.pg_cast카탈로그(참조캐스트 생성). 또는 표현식이 알 수 없는 토토 결과 리터럴인 경우 리터럴 문자열의 내용이 대상 토토 결과에 대한 입력 변환 루틴에 제공됩니다.
대상 토토 결과에 대한 크기 조정이 있는지 확인하십시오. 크기 조정 캐스트는 해당 토토 결과에서 자체로의 캐스트입니다. 하나가에서 발견되면pg_cast카탈로그, 대상 열에 저장하기 전에 표현식에 적용하세요. 이러한 캐스트에 대한 구현 함수는 항상 토토 결과의 추가 매개변수를 사용합니다.정수, 대상 열의를 수신합니다.atttypmod값(일반적으로 선언된 길이이지만 해석은 다음과 같습니다.atttypmod데이터 토토 결과에 따라 다름) 1/3이 걸릴 수 있습니다.부울캐스트가 명시적인지 암시적인지를 알려주는 매개변수입니다. 캐스트 함수는 크기 확인이나 잘림과 같은 길이에 따른 의미 체계를 적용하는 일을 담당합니다.
예제 10.9. 문자저장소 토토 결과 변환
다음으로 선언된 대상 열의 경우문자(20)다음 명령문은 저장된 값의 크기가 올바르게 지정되었음을 보여줍니다.
CREATE TABLE vv (v 문자(20));
INSERT INTO vv SELECT 'abc' || '데프';
SELECT v, octet_length(v) FROM vv;
v | 옥텟_길이
---------+---------------
ABCDEF | 20
(1행)
여기서 실제로 일어난 일은 두 개의 알려지지 않은 리터럴이 다음으로 해결되었다는 것입니다.텍스트기본적으로 다음을 허용합니다.||다음으로 해결될 연산자텍스트연결. 그런 다음텍스트연산자의 결과는 다음으로 변환됩니다.bpchar (“공백으로 채워진 문자”,의 내부 이름문자데이터 토토 결과)을 대상 열 토토 결과과 일치시킵니다. (변환 이후텍스트에bpchar이진 강제 변환이 가능하며 이 변환은 실제 함수 호출을 삽입하지 않습니다.) 마지막으로 크기 조정 함수bpchar(bpchar, 정수, 부울)은 시스템 카탈로그에 있으며 연산자의 결과와 저장된 열 길이에 적용됩니다. 이 토토 결과별 함수는 필요한 길이 확인과 패딩 공백 추가를 수행합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.