Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
9541_9612
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

34.5. Quá tải tỷ lệ kèo bóng đá

Nhiều hơn một hàm có thể được xác định với cùng một tên SQL, Miễn là các lập luận họ đưa ra là khác nhau. Nói cách khác, Tên tỷ lệ kèo bóng đá có thể làquá tỷ lệ kèo bóng đá. Khi a Truy vấn được thực thi, máy chủ sẽ xác định tỷ lệ kèo bóng đá nào gọi từ các loại dữ liệu và số lượng của lập luận. Quá tải cũng có thể được sử dụng để mô phỏng các tỷ lệ kèo bóng đá với số lượng đối số khác nhau, tối đa tối đa hữu hạn con số.

Khi tạo ra một họ các tỷ lệ kèo bóng đá quá tải, nên Cẩn thận không tạo ra sự mơ hồ. Ví dụ, đưa ra tỷ lệ kèo bóng đá:

Tạo kiểm tra tỷ lệ kèo bóng đá (int, real) trả về ...
Tạo kiểm tra tỷ lệ kèo bóng đá (smallint, độ chính xác kép) trả về ...

Không rõ tỷ lệ kèo bóng đá nào sẽ được gọi là với một số đầu vào tầm thường nhưKiểm tra (1, 1.5). Các quy tắc giải quyết hiện đang được thực hiện là được mô tả trongChương 10, nhưng nó là không khôn ngoan để thiết kế một hệ thống một cách tinh tế dựa vào điều này hành vi.

Một hàm có một đối số duy nhất của loại tổng hợp Nói chung không nên có cùng tên với bất kỳ thuộc tính nào (trường) thuộc loại đó. Nhớ lại rằngthuộc tính (bảng)được coi là tương đương vớiBảng.Attribution12280_12533lược đồ.func (bảng)) Nhưng tốt hơn là tránh vấn đề bằng cách không chọn tên xung đột.

Một xung đột có thể khác là giữa Variadic và không Variadic tỷ lệ kèo bóng đá. Chẳng hạn, có thể tạo cả haifoo (số)foo (Variadic Số []). Trong trường hợp này, không rõ cái nào nên khớp với một cuộc gọi cung cấp một đối số số duy nhất, chẳng hạn nhưfoo (10.1). Quy tắc là tỷ lệ kèo bóng đá xuất hiện sớm hơn trong đường dẫn tìm kiếm được sử dụng hoặc nếu hai các tỷ lệ kèo bóng đá nằm trong cùng một lược đồ, không có variadic là ưa thích.

Khi quá tải các hàm ngôn ngữ C, có thêm một Ràng buộc: Tên C của từng tỷ lệ kèo bóng đá trong gia đình của Các tỷ lệ kèo bóng đá quá tải phải khác với tên C của tất cả Các tỷ lệ kèo bóng đá khác, hoặc được tải nội bộ hoặc động. Nếu điều này Quy tắc bị vi phạm, hành vi không thể di động. Bạn có thể nhận được một Lỗi liên kết thời gian chạy hoặc một trong các tỷ lệ kèo bóng đá sẽ được gọi (thường là cái bên trong). Hình thức thay thế củaASmệnh đề cho SQL13718_13735lệnh phân tách hàm SQL Tên từ tên hàm trong mã nguồn C. Vì ví dụ:

Tạo kiểm tra tỷ lệ kèo bóng đá (int) Trả về int
    BẰNG 'FileName',' test_1arg '
    Ngôn ngữ C;
Tạo kiểm tra tỷ lệ kèo bóng đá (int, int) trả về int
    BẰNG 'FileName',' test_2arg '
    Ngôn ngữ C;

Tên của các tỷ lệ kèo bóng đá C ở đây phản ánh một trong nhiều có thể các quy ước.