함수 호출에 사용될 특정 함수는 다음과 같습니다.
함수 유형 해상도
에서 고려할 함수를 선택하십시오PG_PROC
시스템 카탈로그. 만약에섹션 5.7.3). 만약에
검색 경로가 여러 롤 토토을 찾는 경우
입력을 정확하게 수락하는 함수를 확인하십시오알 수없는a
정확히 일치하지 않으면 롤 토토이 있는지 확인하십시오.
최고의 경기를 찾으십시오.
입력의 후보 함수 폐기알 수없는리터럴이 가정됩니다
모든 후보자를 통해 실행하여 그와 함께 보관하십시오
모든 후보자를 통해 실행하고 그를 유지하십시오
입력 인수가있는 경우알 수없는, 허용 된 유형 범주를 확인하십시오String카테고리 후보자가 수락하는 경우
한 후보 만 남아 있으면 사용하십시오. 아니오
"Best Match"규칙
예 10-4. 반올림 함수 인수 유형
하나만 있습니다라운드
두 인수가있는 롤 토토. (첫 번째는숫자, 두 번째는Integer.) 다음 쿼리는 자동으로Integerto숫자:
선택 라운드 (4, 4);
그 쿼리는 실제로 파서에 의해로 변환됩니다.
Round (캐스트 (4 숫자), 4); 선택
소수점이있는 숫자 상수가 처음이므로숫자, 다음
라운드 (4.0, 4); 선택
예 10-5. 서브 스트링 함수 유형
몇 가지가 있습니다substr
함수, 그 중 하나는 유형을 취합니다텍스트andInteger. 문자열로 호출 된 경우String(즉, 유형텍스트).
SELECT SUBSTR ( '1234', 3);
문자열이 유형으로 선언 된 경우Varchar텍스트:
SELECT SUBSTR (Varchar '1234', 3);
이것은 파서에 의해 효과적으로되도록 변환
SELLE SELECT SEPLTR (Cast (varchar '1234'as Text), 3);
참고 :파서는에서 배웁니다pg_cast카탈로그텍스트andVarcharare
그리고 함수가 유형의 인수로 호출되는 경우Integer, 파서는 변환을 시도합니다텍스트:
SELECT SUBSTR (1234, 3);
이것은 실제로로 실행됩니다
SELLE SELL SUBSTR (Cast (1234 AS 텍스트), 3);
이 자동 변환은 있으므로 성공할 수 있습니다Integerto텍스트.