Seleccionar página

Cómo nombrar, crear y acceder a colecciones

Escrito por: Eddie Molina

Oracle ACE Pro. Oracle APEX Cloud Developer Certified Professional. Presidente de ORAUGCRC (Grupo de Usuarios Oracle de Costa Rica). Miembro de líderes de LAOUC. Conferencista, consultor, desarrollador y capacitador en tecnologías Oracle, especialmente Oracle Application Express con más de 30 años de experiencia.

18/09/2017

Continuando con el tema de las colecciones APEX, en esta entrada quiero centrarme en tres acciones específicas que tienen que ver con la creación y acceso a las mismas:

  • Nombrado de colecciones
  • Creado de colecciones
  • Acceso de colecciones

Nombrado de colecciones

Toda colección que creemos, debe tener un nombre que la identifique de manera única. Este sombre debe cumplir con las siguientes características:

  1. No debe ser mayor de 255 caracteres
  2. No son sensitivos a mayúsculas o minúsculas, pues son convertidos a mayúsculas
  3. Este nombre nos sirve para acceder a los valores de la colección al ejecutar una consulta SQL contra la vista APEX_COLLECTIONS

Al final de esta entrada encontrarán un ejemplo de una consulta SQL de una colección.

Creado de colecciones

Como se mencionó en la entrada anterior, cada colección contiene una lista de elementos de datos o miembros de las características y en las cantidades allí mencionadas. Para crear una colección, podemos usar los siguientes métodos:

CREATE_COLLECTION Este método crea una colección vacía con el nombre que se proporciona. Si la colección ya existe, entonces se produce una excepción.

Ejemplo:

En este ejemplo, estamos creando una colección vacía llamada “Salarios”.

CREATE_OR_TRUNCATE_COLLECTION Si el nombre de la colección que se proporciona no existe, este método crea una colección vacía con el mismo. Si el nombre de la colección ya existe, este método la trunca, lo que implica vaciarla pero mantenerla en su lugar.

Un ejemplo de este método, similar al anterior, sería:

 

CREATE_COLLECTION_FROM_QUERY Con este método creamos una colección y la poblamos con los resultados de la consulta especificada. Si la colección ya existe vamos a recibir una excepción como resultado. Este método se puede utilizar con una consulta de hasta 50 columnas en una sentencia SELECT, la cual puebla o rellenas los 50 atributos tipo carácter de la colección (c001 a c050).

En el siguiente ejemplo, creamos una colección de nombre “EMPLEADOS” y le agregamos los datos de los empleados en la tabla EMPLEADOS:

 

CREATE_COLLECTION_FROM_QUERY2 Este método es idéntico al anterior, sin embargo, las 5 primeras columnas de la sentencia SELECT deben ser numéricas, luego de las cuales puede haber hasta 50 columnas de tipo carácter en la sentencia.

En este ejemplo, incluimos la consulta directamente en el llamado del método y creamos una colección llamada “NOMINA” a partir de una tabla llamada “SALARIOS”:

Del ejemplo anterior, deberían tomar nota de lo siguiente:

  • Si no tenemos cinco columnas de tipo numérico que seleccionar, se deben completar las mismas con columnas nulas.
  • Se agrega además una columna de tipo fecha y como en el caso anterior, se debe completar a cinco columnas con valores nulos, pues como se explicó en la entrada anterior, la cantidad de miembros de tipo fecha de una colección es de 5.
  • No se está calculando el valor de verificación MD5 en este caso.
CREATE_COLLECTION_FROM_QUERY_B Este método es mucho más rápido que el método CREATE_COLLECTION_FROM_QUERY, al ejecutar operaciones de SQL en bulto, pero tiene las siguientes limitaciones:

  • El valor de las columnas en la lista de selección no puede ser mayor a 2000 bytes, en caso contrario, un error es levantado durante la ejecución.
  • El valor de verificación MD5 no es computado para ningún miembro de la colección.

En el ejemplo siguiente, se puede observar que como se comentó arriba, el valor de verificación MD5 no se calcula, y el formato es igual al del método CREATE_COLLECTION_FROM_QUERY:

 

CREATE_COLLECTION_FROM_QUERYB2 Este método es idéntico al anterior, sin embargo, las cinco primeras columnas de la sentencia SELECT deben ser numéricas, luego de las cuales se pueden incluir hasta 50 columnas de tipo carácter.

En este caso, siguiendo con los ejemplos de arriba, el de este método se vería así:

 

Acceso de colecciones

Se puede acceder a los miembros de una colección consultando la vista de base de datos APEX_COLLECTIONS, la cual tiene la siguiente definición:

Utilizamos la vista APEX_COLLECTIONS en nuestras aplicaciones de la misma manera en que lo hacemos con cualquier otra vista o tabla de nuestras aplicaciones, como por ejemplo:

En este caso estamos seleccionando los tres primeros miembros de tipo carácter, el primer miembro numérico, el primer miembro de tipo fecha y el miembro de tipo CLOB de la colección llamada “NOMINA”.

En la siguiente entrada estaré explicando como “unir”, truncar y eliminar colecciones.

También te puede gustar…

Share This