함수 호출 유형 해상도
PG_PROC 시스템 카탈로그에서 정확히 일치하는지 확인하십시오. (관련된 사례알 수없는절대 이 단계에서 경기를 찾으십시오.)
최고의 경기를 찾으십시오.
같은 이름의 모든 함수 목록을 작성합니다. 입력이 유형되는 동일한 인수 일치하거나 일치하도록 강요 될 수 있습니다. (알 수없는리터럴이 가정됩니다 이 목적을 위해 무엇이든 강요 할 수 있습니다.) 있다면 하나만 사용합니다. 그렇지 않으면 다음 단계로 계속됩니다.
모든 후보자를 통해 그와 함께 보관하십시오 입력 유형에서 가장 정확한 일치. 모든 후보자를 유지하십시오 정확히 일치하는 사람이없는 경우. 한 후보자 만 있다면 남아 있습니다. 그렇지 않으면 다음 단계로 계속됩니다.
모든 후보자를 통해 그와 함께 보관하십시오 입력 유형에서 가장 정확하거나 이진 호환 일치. 정확한 또는 정확한 사람이없는 경우 모든 후보자를 유지하십시오 이진 호환 일치. 한 후보자 만 있다면 남아 있습니다. 그렇지 않으면 다음 단계로 계속됩니다.
모든 후보자를 통해 실행하여 그를 유지하십시오 유형의 대부분의 위치에서 선호되는 유형을 허용합니다 강요가 필요합니다. 모든 후보자를 보관하십시오 선호하는 유형을 허용합니다. 한 후보 만 남아있는 경우 그것을 사용하십시오; 그렇지 않으면 다음 단계로 계속됩니다.
입력 인수가 "알 수 없음"인 경우 유형을 확인하십시오 그 인수 위치에서 수용 된 범주 남은 후보자. 각 위치에서 "String"을 선택하십시오. 카테고리 후보자가 해당 범주를 수락하는 경우 (이 문자열에 대한 바이어스는 an. 이후로 적절하다 알 수없는 유형의 리터럴은 문자열처럼 보입니다). 그렇지 않으면 나머지 후보자가 모두 수락하는 경우 동일한 유형 카테고리, 해당 범주를 선택하십시오. 그렇지 않으면 올바른 선택은 추론 할 수 없기 때문에 실패합니다 더 많은 단서없이. 또한 응시자는 다음에서 선호하는 데이터 유형을 수락합니다 선택된 카테고리. 이제 운영자 후보를 폐기하십시오 선택한 유형 범주를 허용하지 마십시오. 뿐만 아니라, 후보자가 주어진에서 선호하는 유형을 수락하는 경우 인수 위치, 받아들이는 후보자를 버립니다 그 주장에 대한 선호되지 않은 유형.
한 후보 만 남아 있으면 사용하십시오. 아니오 그러므로 후보 또는 두 명 이상의 후보가 남아 있습니다 실패하다.
최상의 일치를 식별 할 수없는 경우 사설 토토 사이트 호출은 사소한 유형 강요 인 것 같습니다 요구. 함수 호출에 하나만있는 경우 발생합니다 인수와 함수 이름은 (내부) 일부 데이터 유형의 이름. 또한 사설 토토 사이트 인수는 알려지지 않은 문자 그럴이거나 유형이어야합니다. 그것은 이름이 지정된 데이터 유형과 이진과 호환됩니다. 언제 이러한 조건이 충족되고 사설 토토 사이트 인수는 강요됩니다 명명 된 데이터 유형에.
PG_PROC 카탈로그. 따라서 다음 쿼리가 자동으로 변환int2인수int4:
TGL = int4fac (int2 '4'); int4fac ------- 24 (1 행)실제로 파서에 의해 실제로 변환
TGL = int4fac (int4 (int2 '4')); int4fac ------- 24 (1 행)
두 개가 있습니다Substr사설 토토 사이트 pg_proc에서 선언되었습니다. 그러나 하나만 두 가지 주장을합니다. 유형텍스트andint4.
지정되지 않은 유형의 문자열 상수로 호출되면 유형은 유일한 후보 사설 토토 사이트과 직접 일치합니다. 유형:
tgr = select substr ( '1234', 3); 기판 -------- 34 (1 행)
문자열이 유형으로 선언 된 경우Varchar테이블, 그러면 파서는 그것을 강요하려고 노력할 것입니다텍스트:
tgr = select substr (varchar '1234', 3); 기판 -------- 34 (1 행)파서에 의해 변환
TGL = SELECT SEPSTR (Text (varchar '1234'), 3); 기판 -------- 34 (1 행)
참고 :실제로, 파서는 그것을 알고 있습니다텍스트andVarchar는 "이진 호환"입니다 하나는 다른 하나를 받아들이는 함수로 전달 될 수 있습니다. 물리적 전환없이. 따라서, 아니요 명시 적 유형 변환 호출이 실제로 삽입됩니다 사례.
그리고 함수가 an으로 호출되는 경우int4, 파서는이를로 변환하려고합니다.텍스트:
TGL = SELECT SUBSTR (1234, 3); 기판 -------- 34 (1 행)실제로 실행
TGL = select substr (텍스트 (1234), 3); 기판 -------- 34 (1 행)이것은 변환 기능이 있기 때문에 성공합니다 시스템 카탈로그에서 텍스트 (int4)