02 enero 2019

PL/SQL: Colecciones para crear funciones de parámetros variables.


Bueno, lo primero, feliz año 2019, iniciamos este año con una entrada en el blog el 2 de Enero, espero que sea un año de trabajo, el justo y bien pagado, ojala, para todos. Y sin más dilación al lío.

Si aparte de ser un tarado del PL/SQL y del mundo de base de datos Oracle le has dado caña a algún lenguaje, tal como C, java o incluso la abominación de c#, igual te has encontrado funciones que permiten un número variable de parámetros de entrada sin requerir un conjunto fijo de sobrecarga.

En C


En Java

PL/SQL no expone una sintaxis similar para funciones definidas por el usuario. Sin embargo, es posible pasar en una colección que contiene un número variable de valores para lograr la misma funcionalidad, aunque con una sintaxis "ligeramente" más voluminosa.


Tal función podría ser utilizada como sigue:


Una de las situaciones que resolví con esta técnica es un código que valida fechas de varios formatos y / o un constructor de fechas. Primero, necesitamos un tipo de colección. En el ejemplo anterior tuve una colección de enteros, en esta siguiente será una colección de valores Varchar2, definidos de la siguiente manera:



Y se invoca como sigue:


A menudo, cuando construyo este tipo de funciones, incluyo+ un parámetro opcional para proporcionar un manejo alternativo de errores. Por ejemplo, devolver un mensaje definido por el invocador a excepción, o devolver NULL.


Entonces podemos usar la función con éxito o resultados diferentes en caso de fallo.


Con estos mimbres, puedes ampliar tus propias funciones con colecciones de entrada de fechas, números, tipos definidos por el usuario o incluso valores ANYDATA.

No hay comentarios:

Publicar un comentario

Por favor deja tu comentario, es valioso.