함수 호출에 사용될 특정 함수는 다음과 같습니다. 다음 단계에 따라 결정됩니다.
함수 유형 해상도
에서 고려할 함수를 선택하십시오PG_PROC
시스템 카탈로그. 만약에
자격이없는 함수 이름이 사용되었습니다
올바른 이름과 인수 계수의 고려
현재 검색 경로에서 볼 수 있습니다 (참조섹션 5.8.3). 만약에
자격을 갖춘 토토 사이트 추천 이름이 주어졌으며
지정된 스키마가 고려됩니다.
검색 경로에서 여러 토토 사이트 추천을 찾는 경우 동일한 인수 유형 만 나타나는 것만 나타납니다 경로에서 가장 빠른 것이 고려됩니다. 그러나 토토 사이트 추천 다른 인수 유형은 동일하게 고려됩니다 검색 경로 위치에 관계없이 기초.
입력을 정확하게 수락하는 함수를 확인하십시오 인수 유형. 하나가 존재하는 경우 (정확한 하나만있을 수 있습니다 고려 된 함수 세트에서 일치) 사용하십시오. (케이스 관련알 수없는결코 찾을 수 없습니다 이 단계에서 일치합니다.)
정확히 일치하지 않으면 토토 사이트 추천이 있는지 확인하십시오. 호출은 사소한 유형 변환 요청 인 것으로 보입니다. 이것 함수 호출에 단 하나의 인수가 있고 함수 이름은 일부의 (내부) 이름과 동일합니다. 데이터 유형. 또한 토토 사이트 추천 인수는해야합니다 알려지지 않은 문자 그대로 또는 유형입니다 이름이 지정된 데이터 유형과 이진과 호환됩니다. 이런 경우 조건이 충족되고 토토 사이트 추천 인수가 변환됩니다 실제 함수 호출이없는 이름의 데이터 유형.
최고의 경기를 찾으십시오.
입력의 후보 토토 사이트 추천 폐기 유형은 일치하지 않으며 변환 할 수 없습니다 (사용 암시 적 변환) 일치합니다.알 수없는리터럴이 가정됩니다 이 목적을 위해 무엇이든 전환 할 수 있습니다. 단지 하나라면 후보자는 남아있다. 그렇지 않으면 다음으로 계속됩니다 단계.
모든 후보자를 통해 그와 함께 보관하십시오 입력 유형에서 가장 정확한 일치. (도메인입니다 이것에 대한 기본 유형과 동일하게 간주됩니다 목적.) 정확한 사람이 없으면 모든 후보자를 유지하십시오 성냥. 한 명의 후보 만 남아 있으면 사용하십시오. 또 다른 다음 단계로 계속하십시오.
모든 후보자를 통해 실행하여 그를 유지하십시오 선호하는 유형을 허용합니다 (입력 데이터 유형의 유형 카테고리) 유형 변환의 대부분의 위치에서 필요합니다. 아무도 수락하지 않으면 모든 후보자를 유지하십시오 선호하는 유형. 한 명의 후보 만 남아 있으면 사용하십시오. 그렇지 않으면 다음 단계로 계속됩니다.
입력 인수가있는 경우알 수없는, 허용 된 유형 범주를 확인하십시오 그 논쟁에서 나머지는 위치에 있습니다 후보자. 각 위치에서를 선택하십시오.String카테고리 후보자가 수락하는 경우 그 범주. (문자열에 대한이 편견은 적절합니다 알려지지 않은 문자 문자는 문자열처럼 보이므로.) 그렇지 않으면 나머지 후보자가 모두 수락하는 경우 동일한 유형 카테고리, 해당 범주를 선택하십시오. 그렇지 않으면 올바른 선택은 추론 할 수 없기 때문에 실패합니다 더 많은 단서없이. 이제 그렇지 않은 후보자를 버립니다 선택한 유형 범주를 수락하십시오. 또한 후보는 주어진 인수에서 선호 유형을 수락합니다 입장, 선호되지 않은 수락 후보자를 버립니다 그 주장에 대한 유형.
한 후보 만 남아 있으면 사용하십시오. 아니오 그러므로 후보 또는 두 명 이상의 후보가 남아 있습니다 실패하다.
"Best Match"규칙 작업자 및 기능 유형 해상도와 동일합니다. 일부 예는 다음과 같습니다.
예 10-4. 반올림 함수 인수 유형 해결
하나만 있습니다라운드
두 인수가있는 토토 사이트 추천. (첫 번째는숫자, 두 번째는정수.) 다음 쿼리가 자동으로
유형의 첫 번째 인수를 변환Integerto숫자:
선택 라운드 (4, 4); 둥근 -------- 4.0000 (1 행)
쿼리는 실제로 파서에 의해
원형 (캐스트 (4 숫자), 4); 선택
소수점이있는 숫자 상수가 처음이므로 유형 할당숫자, 다음 쿼리는 유형 변환이 필요하지 않으므로 약간 더 효율적인 :
라운드 (4.0, 4); 선택
예 10-5. 서브 스트링 함수 유형 해결
몇 가지가 있습니다Substr
함수, 그 중 하나는 유형을 취합니다텍스트andInteger. 문자열로 호출 된 경우
지정되지 않은 유형의 일정한 시스템은 후보를 선택합니다
선호하는 범주의 인수를 받아들이는 토토 사이트 추천String(즉, 유형텍스트).
SELECT SUBSTR ( '1234', 3); 기판 -------- 34 (1 행)
문자열이 유형으로 선언 된 경우varchar테이블, 그러면 파서는 그것을 변환하려고 시도합니다텍스트:
SELECT SUBSTR (Varchar '1234', 3); 기판 -------- 34 (1 행)
이것은 파서에 의해 효과적으로되도록 변환
septtr (cast (varchar '1234'as text), 3); 선택
참고 :파서는에서 배웁니다pg_cast카탈로그텍스트andVarcharare 이진 호환성, 즉 하나를 전달할 수 있음을 의미합니다 물리적 인 일을하지 않고 상대방을 받아들이는 토토 사이트 추천 변환. 따라서 명시적인 유형 변환 호출은 없습니다 이 경우 정말 삽입되었습니다.
그리고 함수가 유형의 인수로 호출되는 경우Integer, 파서는 변환을 시도합니다 그게텍스트:
SELECT SUBSTR (1234, 3); 기판 -------- 34 (1 행)
이것은 실제로로 실행됩니다
SELL SELL SUBSTR (Cast (1234 As Text), 3);
이 자동 변환은 성공할 수 있습니다 암시 적으로 침략 할 수있는 캐스트Integerto텍스트.