Uddrag fra din kommentar til @ajmalmhd04 svar
Ja, dokumentation er lidt forvirrende i den måde, den definerer brugerdefinerede operatorer på, især denne del:
Desværre betyder det, at du kan bruge brugerdefinerede operatorer, hvor du (for det meste) kan bruge indbyggede operatorer, men ikke på samme måde(operand1 OPERATOR operand2
for eksempel) bruger du indbyggede operatorer, såsom <
eller =
. Brugerdefinerede operatører, hvis ikke se dem meget nøje, er forskellige måder at kalde funktioner på med den undtagelse, at de(operatører) kun kan bruges i DML-sætninger (select
, insert
og så videre). Du vil ikke være i stand til at bruge dem direkte i PL/SQL, kun gennem DML. Så noget som dette i PL/SQL vil resultere i PLS-00548: invalid use of operator.
if operator(<<arguments>>) = 1 then
-- something
end if;
Fordelene ved at oprette og bruge operatører, hvis du ikke er involveret i at udvikle applikationsspecifikke server-baserede udvidelser (datapatroner), f.eks. indekstyper, som ikke er så synlige for mig personligt. Kan ikke komme i tanke om en situation, hvor du kan bruge operatører og ikke kan bruge funktioner. Det modsatte er dog ikke sandt. Du kan se på operatørens evne til at have flere bindinger som en måde at bruge det på som en overbelastet funktion. Men på den anden side kan du sagtens opnå det samme med pakker.