sql >> Base de Datos >  >> RDS >> Oracle

Crear operador definido por el usuario con lados izquierdo/derecho

Extracto de su comentario a @ajmalmhd04 respuesta

Sí, documentación es un poco confuso en la forma en que define los operadores definidos por el usuario, especialmente esta parte:

Desafortunadamente, significa que puede usar operadores definidos por el usuario donde (principalmente) puede usar operadores incorporados pero no de la misma manera (operand1 OPERATOR operand2 por ejemplo) utiliza operadores incorporados, como < o = . Los operadores definidos por el usuario, si no los observa muy de cerca, son formas diferentes de llamar funciones con la excepción de que (los operadores) solo se pueden usar en instrucciones DML (select , insert Etcétera). No podrá usarlos en PL/SQL directamente, solo a través de DML. Entonces, algo como esto, en PL/SQL resultará en PLS-00548: invalid use of operator.

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

Los beneficios de crear y usar operadores, si no está involucrado en el desarrollo de extensiones basadas en servidor específicas de la aplicación (cartuchos de datos), tipos de índice, por ejemplo, no son tan visibles para mí personalmente. No puedo pensar en una situación en la que pueda usar operadores y no pueda usar funciones. Sin embargo, lo contrario no es cierto. Puede considerar la capacidad del operador para tener múltiples enlaces como una forma de usarlo como una función sobrecargada. Pero, por otro lado, puedes lograr fácilmente lo mismo con los paquetes.