하나 이상의 함수를 동일한 SQL 이름으로 정의할 수 있습니다. 단, 인수가 다른 경우에 한합니다. 즉, 함수 이름은 다음과 같습니다.오버로드. 사용 여부에 관계없이 이 배트맨 토토은 일부 사용자가 다른 사용자를 불신하는 데이터베이스에서 함수를 호출할 때 보안 예방 조치를 수반합니다. 참조스포츠 토토 결과 42 |_1 |04. 쿼리가 실행되면 서버는 제공된 인수의 수와 데이터 유형에서 호출할 배트맨 토토를 결정합니다. 오버로딩은 최대 유한 개수까지 가변 개수의 인수를 사용하여 배트맨 토토를 시뮬레이션하는 데에도 사용할 수 있습니다.
오버로드된 함수군을 생성할 때 모호성을 생성하지 않도록 주의해야 합니다. 예를 들어, 주어진 함수는 다음과 같습니다:
CREATE FUNCTION 테스트(int, real) 반환 ... CREATE FUNCTION 테스트(smallint, 배정밀도) RETURNS ...
다음과 같은 사소한 입력으로 어떤 함수가 호출될지는 즉시 명확하지 않습니다.테스트(1, 1.5). 현재 구현된 해결 규칙은 다음 항목에 설명되어 있습니다.토토 핫 : 문서 : 12 : CHAPTER 10. TYPE CONVERSION, 하지만 이 동작에 미묘하게 의존하는 시스템을 설계하는 것은 현명하지 않습니다.
복합 유형의 단일 인수를 취하는 배트맨 토토는 일반적으로 해당 유형의 속성(필드)과 동일한 이름을 가져서는 안 됩니다. 그것을 기억해내세요다음과 동등한 것으로 간주됩니다.속성(테이블). 복합 유형의 함수와 복합 유형의 속성 사이에 모호성이 있는 경우 해당 속성이 항상 사용됩니다. 함수 이름을 스키마로 한정하여 해당 선택을 재정의할 수 있습니다(즉,테이블.속성) 하지만 충돌하는 이름을 선택하지 않음으로써 문제를 피하는 것이 더 좋습니다.스키마.func(테이블)
또 다른 가능한 충돌은 가변 배트맨 토토와 비 가변 배트맨 토토 사이에 있습니다. 예를 들어, 둘 다 생성하는 것이 가능합니다.foo(숫자)그리고foo(VARIADIC 숫자[]). 이 경우 다음과 같은 단일 숫자 인수를 제공하는 호출에 어느 것이 일치해야 하는지 불분명합니다.foo(10.1). 규칙은 검색 경로에서 먼저 나타나는 함수가 사용되거나 두 함수가 동일한 스키마에 있는 경우 가변적이지 않은 함수가 선호된다는 것입니다.
C 언어 함수를 오버로드할 때 추가 제약 조건이 있습니다. 오버로드된 함수 계열에 있는 각 함수의 C 이름은 내부 또는 동적으로 로드된 다른 모든 함수의 C 이름과 달라야 합니다. 이 규칙을 위반하면 해당 동작은 이식 가능하지 않습니다. 런타임 링커 오류가 발생하거나 함수 중 하나가 호출됩니다(일반적으로 내부 함수). 의 대체 형식ASSQL에 대한 절배트맨 토토 생성명령은 C 소스 코드의 함수 이름에서 SQL 함수 이름을 분리합니다. 예를 들어:
CREATE FUNCTION 테스트(int) 반환 int
그대로 '파일 이름', 'test_1arg'
언어 C;
CREATE FUNCTION test(int, int) 반환 int
그대로 '파일 이름', 'test_2arg'
언어 C;
여기서 C 배트맨 토토의 이름은 가능한 많은 규칙 중 하나를 반영합니다.