¿Cómo definir Variables eficientes en los Packages en Oracle?

Si aprendes la técnica para Definir o Declarar Variables  que sean eficientes dentro de los Packages en Oracle vas ha lograr desarrollar o construir Procedures en Oracle o Function en Oracle que se puedan leer y entender rápidamente por cualquier persona que deba realizar alguna mantención a los procesos del Packaged.

Para la definición de Variables es muy importante que con tu equipo de desarrollo de procesos definan de común acuerdo en un documento las normas y/o directrices que se tomarán para la declaración de variables, donde se deben especificar datos como el Nombre, Visibilidad, Tipo de dato, Caracteres a usar, etc.

Cuando hablo de variables que sean eficientes me refiero a que las variables deben tener las siguientes características:

  1. Deben tener identificado en su nombre la visibilidad de la variable, es decir, si la variable es Local, Parámetro o Global.

NOMBRE                        Varchar2(20);

El nombre de esta variable no te permite saber si es una variable local, un parámetro o si el global.

L_NOMBRE       Varchar2(20);

El nombre de esta variable te indica claramente que es una variable Local. Usaremos la letra L para variables locales, la P para los parámetros y la G para las globales o publicas.

2.   Deben tener nombres que sean descriptivos que indiquen de inmediato que dato van a contener, ejemplo:

L_VAR1                                                 Number(5);

Al leer el nombre de esta variable l_var1 no logras identificarla o asociarla con ningún dato relevante, es decir, su nombre no te dice nada.

L_SUELDO_EMPLEADO                    Number(10);

Al leer el nombre de esta variable l_sueldo_empleado la identificas de inmediato con el dato que contiene que es el sueldo del empleado.

3.   Deben tener claramente identificado en su nombre el tipo de dato que van a contener.

L_EDAD_EMPLEADO                        Number(10);

Esta variable solo me dice es local y que contendrá la edad del empleado, pero no indica el tipo de dato.

LIN_EDAD_EMPLEADO                    Number(10);

Esta variable te indica que es local, de tipo numérica y que contiene la edad del empleado. Usaremos las letras IN para identificar el tipo Integer o Number, ST para el tipo String o Char, DT para el tipo Date, CR para el tipo Cursor, etc.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

4.   Las variables que contengan datos de tablas deben ser definidas con el tipo de dato de la tabla.

LIN_ID_EMPLEADOS             Number(10);

Esta variable guardara el campo id_empleados de la tabla T_EMPLEADOS, pero debe ser declarada con mismo tipo de dato de la tabla.

LIN_ID_EMPLEADOS             T_EMPLEADOS.ID_EMPLEADOS%TYPE;

Esta es la forma correcta de definir una variable que contendrá datos de tablas, ya que si en el futuro se debe ampliar el tamaño del campo solo se debe modificar la tabla y para los procesos el cambio será transparente al estar las variables declaradas con el mismo tipo de dato de la tabla.

5.   Deben tener definidos correctamente el tamaño del dato que van a contener.

GST_ESTADO_EMPLEADO               Varchar2(10):= ‘A’;

Esta variable global de tipo string o char contiene un solo carácter, pero en su definición se indica que puede contener hasta 10 caracteres. Esto no es correcto ya que la variable esta guardando memoria para 10 caracteres y solo ocupará uno.

GST_ESTADO_EMPLEADO               Varchar2(1):= ‘A’;

Esta es la forma correcta de definir la variable del tipo varchar2 de largo 1, ya que solo contendrá un solo carácter.

6.   Deben contener nombres abreviados y caracteres de separación.

LDTFECHAINGRESOEMPLEADO               Date;

Esta variable local de tipo fecha que contendrá la fecha de ingreso del empleado no se logra leer fácilmente al verla.

LDT_FEC_ING_EMPLEADO                          Date;

Esta variable se lee y se entiende de inmediato al verla, ya que contiene el carácter separador ‘_’ y ademas abreviaciones de la palabra fecha por ‘fec’ y de ingreso por ‘ing’.

No dudes en dejarme tu pregunta o comentario sobre este artículo, ya que estaré muy atento para resolver todas las dudas que tengas al respecto. Puedes contarme además que tema te interesa saber sobre Packages en Oracle o cuál es tu principal frustración a la hora de construir Procedures en Oracle y/o Function en Oracle, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en 7 Pasos

Esta entrada fue publicada en Function en Oracle, Packages en Oracle, Procedures en Oracle y etiquetada , , , , , . Guarda el enlace permanente.

2 respuestas a ¿Cómo definir Variables eficientes en los Packages en Oracle?

  1. ivette alzualde dijo:

    Buen Día,
    No puedo dejar pasar la oportunidad de felicitarte, la forma en que explicas me ha aclarado realmente muchas dudas.
    De verdad muchas gracias, nunca imagine que existiera un blog así, que explicara en forma tan detallada y lo más importante totalmente en español.
    Yo quisiera saber cual es la mejor manera de documentar un package y existe alguna manera de que un package utilice un
    select * y yo pueda utilizar determinados campos en un tiempo especifico.
    Otra cosita por casualidad sabes si existe algun blog que enseñe como utilizar de manera optima el sql navigator.

    • Hola Ivette, gracias por escribirme, me alegra mucho saber que mis articulos te están enseñando y ayudando a aclarar tus dudas, tu comentario me llena de energia para seguir escribiendo mas sobre los Packages en Oracle.

      Respecto de tus preguntas, la mejor forma de documentar un package es escribir en su spec y body información del autor y ademas colocar una versión mas la fecha y mas un comentario de todas las modificaciones que se realicen sobre el package, además de documentar también cada procedure y function que se cree o modifique. Sobre lo de utilizar un select * puedes crear un cursor publico en el body de tu package y asi lo puedes accesar desde cualquier lugar dentro del package, puedes ver el articulo sobre ¿Cómo se Construye un Cursor mas Eficiente? y ¿Cuándo se deben usar las Variables Públicas o Globales? para obtener mas detalles, espero que alla respondido tus inquietudes.

      Saludos
      Roberto Vicencio.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s