Estratto dal tuo commento a @ajmalmhd04 risposta
Sì, documentazione crea un po' di confusione nel modo in cui definisce gli operatori definiti dall'utente, in particolare questa parte:
Sfortunatamente, significa che puoi usare operatori definiti dall'utente dove (principalmente) puoi usare operatori integrati ma non allo stesso modo(operand1 OPERATOR operand2
per esempio) utilizzi operatori integrati, come <
o =
. Gli operatori definiti dall'utente, se non guardarli molto da vicino, sono modi diversi di chiamare le funzioni con l'eccezione che essi (operatori) possono essere utilizzati solo nelle istruzioni DML (select
, insert
e così via). Non sarai in grado di usarli direttamente in PL/SQL, solo tramite DML. Quindi, qualcosa del genere, in PL/SQL risulterà in PLS-00548: invalid use of operator.
if operator(<<arguments>>) = 1 then
-- something
end if;
I vantaggi della creazione e dell'utilizzo di operatori, se non si è coinvolti nello sviluppo di estensioni basate su server specifiche per applicazioni (cartucce di dati), ad esempio i tipi di indice, non sono visibili a me personalmente. Non riesco a pensare a una situazione in cui puoi usare gli operatori e non puoi usare le funzioni. Tuttavia non è vero il contrario. Puoi considerare la capacità dell'operatore di avere più collegamenti come un modo per usarlo come una funzione sovraccaricata. Ma, d'altra parte, puoi facilmente ottenere lo stesso con i pacchetti.