sql >> Databasteknik >  >> RDS >> Oracle

Skapa användardefinierad operatör med vänster/höger sida

Utdrag från din kommentar till @ajmalmhd04 svar

Ja, dokumentation är lite förvirrande i sättet att definiera användardefinierade operatorer, speciellt denna del:

Tyvärr betyder det att du kan använda användardefinierade operatorer där (oftast) du kan använda inbyggda operatorer men inte på samma sätt(operand1 OPERATOR operand2 till exempel) använder du inbyggda operatorer, som < eller = . Användardefinierade operatorer, om inte titta på dem väldigt noggrant, är olika sätt att anropa funktioner med undantaget att de (operatorer) bara kan användas i DML-satser (select , insert och så vidare). Du kommer inte att kunna använda dem i PL/SQL direkt, bara genom DML. Så, något sånt här, i PL/SQL kommer att resultera i PLS-00548: invalid use of operator.

if operator(<<arguments>>) = 1 then
  -- something
end if;

Fördelarna med att skapa och använda operatörer, om du inte är involverad i att utveckla applikationsspecifika serverbaserade tillägg (datakassetter), indextyper till exempel, inte så synliga för mig personligen. Kan inte komma på en situation där du kan använda operatorer och inte kan använda funktioner. Motsatsen är dock inte sant. Du kan titta på operatörens förmåga att ha flera bindningar som ett sätt att använda det som en överbelastad funktion. Men å andra sidan kan du enkelt uppnå samma sak med paket.



  1. MySQL-frågeordning efter de flesta ifyllda fälten

  2. ska jag återanvända markören i python MySQLdb-modulen

  3. Android-program för att konvertera SQLite-databasen till Excel

  4. LPAD() Funktion i PostgreSQL