Fragment uit je reactie op @ajmalmhd04 antwoord
Ja, documentatie is een beetje verwarrend in de manier waarop het door de gebruiker gedefinieerde operators definieert, vooral dit deel:
Helaas betekent dit dat u door de gebruiker gedefinieerde operators kunt gebruiken waar u (meestal) ingebouwde operators kunt gebruiken, maar niet op dezelfde manier (operand1 OPERATOR operand2
bijvoorbeeld) gebruik je ingebouwde operators, zoals <
of =
. Door de gebruiker gedefinieerde operators, als ze niet heel nauwkeurig worden bekeken, zijn verschillende manieren om functies aan te roepen, met de uitzondering dat ze (operators) alleen kunnen worden gebruikt in DML-instructies (select
, insert
enzovoorts). Je kunt ze niet rechtstreeks in PL/SQL gebruiken, alleen via DML. Dus zoiets als dit, in PL/SQL zal resulteren in PLS-00548: invalid use of operator.
if operator(<<arguments>>) = 1 then
-- something
end if;
De voordelen van het maken en gebruiken van operators, als je niet betrokken bent bij het ontwikkelen van applicatiespecifieke servergebaseerde extensies (datacartridges), indextypes bijvoorbeeld, zijn voor mij persoonlijk niet zo zichtbaar. Kan geen situatie bedenken waarin u operators kunt gebruiken en geen functies kunt gebruiken. Het tegenovergestelde is echter niet waar. U kunt het vermogen van de operator om meerdere bindingen te hebben bekijken als een manier om het als een overbelaste functie te gebruiken. Maar aan de andere kant kun je hetzelfde gemakkelijk bereiken met pakketten.