Trích từ nhận xét của bạn cho @ ajmalmhd04 câu trả lời
Có, tài liệu hơi khó hiểu trong cách nó xác định các toán tử do người dùng xác định, đặc biệt là phần này:
Thật không may, điều đó có nghĩa là bạn có thể sử dụng các toán tử do người dùng xác định trong đó (hầu hết) bạn có thể sử dụng các toán tử cài sẵn nhưng không theo cách tương tự ( operand1 OPERATOR operand2
chẳng hạn) bạn sử dụng các toán tử cài sẵn, như <
hoặc =
. Các toán tử do người dùng định nghĩa, nếu không xem xét kỹ chúng, là các cách gọi hàm khác nhau, ngoại trừ chúng (toán tử) chỉ có thể được sử dụng trong các câu lệnh DML ( select
, chèn
và kể từ đó trở đi). Bạn sẽ không thể sử dụng chúng trong PL / SQL trực tiếp mà chỉ thông qua DML.
if operator(<<arguments>>) = 1 then
-- something
end if;
Lợi ích của việc tạo và sử dụng các toán tử, nếu bạn không tham gia vào việc phát triển các tiện ích mở rộng dựa trên máy chủ cụ thể (hộp dữ liệu), các kiểu chỉ mục, chẳng hạn, không hiển thị với cá nhân tôi. Không thể nghĩ đến một tình huống mà bạn có thể sử dụng toán tử và không thể sử dụng các hàm. Ngược lại là không đúng, tuy nhiên. Bạn có thể xem xét khả năng có nhiều ràng buộc của toán tử như một cách sử dụng nó như một hàm quá tải. Tuy nhiên, mặt khác, bạn có thể dễ dàng đạt được điều tương tự với các gói.