sql >> Database >  >> RDS >> Oracle

Maak een door de gebruiker gedefinieerde operator met links/rechts

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.



  1. PreparedStatement-batches met verschillende SQL-instructies

  2. Hoe kan ik gegevens in twee tabellen tegelijk INVOEREN in SQL Server?

  3. Installeer MySQL 5.6 op Ubuntu 20.04

  4. PHP - MYSQL - testdatabaseserver