Conocer la Aplicación Empaquetada Quick SQL de Oracle APEX 5.1

Por Clarisa Maman Orfali Oracle ACE director
Publicado en Abril 2018

Revisado por Ana Gamba


Oracle Application Express incluye más de 35 aplicaciones empaquetadas. Nosotros podemos instalar y ejecutar estas aplicaciones empaquetadas para aprender sobre los tipos de aplicaciones que se pueden crear y cómo construir diferentes tipos de páginas específicas. Además, también podemos hacer uso de los plugins de estas aplicaciones para extender funcionalidades en nuestras aplicaciones en APEX.


GALERIA DE APLICACIONES EMPAQUETADAS

La galería de aplicaciones empaquetadas incluye tres tipos de aplicaciones:

  • Aplicaciones de ejemplo: como indica el nombre del grupo, una aplicación de ejemplo suministrada por Oracle no es una aplicación completa y, en su lugar, contiene fragmentos de código o códigos de ejemplo. Las aplicaciones de ejemplo están disponibles para la instalación en un espacio de trabajo y se pueden editar de forma predeterminada.
  • Aplicaciones de productividad: Las aplicaciones de productividad son aplicaciones totalmente funcionales que han sido diseñadas para satisfacer una necesidad empresarial específica. Podemos instalarlas, ejecutarlas y utilizar una aplicación de productividad tal cual o analizarla para comprender mejor cómo crear un tipo específico de funcionalidad. Las aplicaciones de productividad están disponibles para la instalación en un espacio de trabajo, pero no se pueden editar de forma predeterminada.
  • Aplicaciones personalizadas: las aplicaciones empaquetadas personalizadas son aplicaciones que se crean y que son administradas por el administrador de la instancia. Al igual que las aplicaciones empaquetadas suministradas por Oracle, las aplicaciones empaquetadas personalizadas suelen incluir tanto las páginas de aplicación como los objetos de base de datos de soporte. Un desarrollador crea una aplicación personalizada mediante la exportación de una aplicación. Una vez exportada, el administrador de la instancia lo importa para hacerlo disponible. Las aplicaciones personalizadas están disponibles para la instalación en un espacio de trabajo, pero no se pueden editar de forma predeterminada.

La principal diferencia entre la aplicación de ejemplo y la aplicación de productividad es el nivel de soporte. De forma predeterminada, las aplicaciones de ejemplo son totalmente editables. Por el contrario, para poder editar las aplicaciones de productividad, previamente hay que desbloquearlas. El desbloqueo de una aplicación lo hace inelegible para futuras actualizaciones o soporte técnico de Oracle Support.

Para visualizar la galería de aplicaciones empaquetadas ingresamos a la página de inicio de APEX y hacemos clic en el icono “Aplicaciones Empaquetadas”:


Oracle APEX 5.1 Introduce tres nuevas Apps de productividad, las cuales son: Competitive Analysis, Quick SQL and REST Client Assistant.

En este artículo aprenderemos cómo trabajar con la aplicación empaquetada Quick SQL.

Introducción

Esta aplicación proporciona una forma rápida e intuitiva de generar un modelo de datos SQL a partir de un documento de texto identado (con sangrías). Esta herramienta puede mejorar drásticamente el tiempo requerido para crear un modelo de datos relacional. Además, la herramienta ofrece muchas opciones para generar SQL, incluyendo generar triggers, APIs y tablas de historial. Esta herramienta no está diseñada para ser un reemplazo del 100% para el modelado de datos, simplemente es un comienzo rápido. Una vez que se genera el SQL se puede ajustar y ampliar.

Datos sobre la Aplicación:

Casos de uso:

  • Rápida generación de sintaxis de SQL a partir de texto de estilo markdown, crear modelos de datos básicos rápidos
  • Crear instrucciones SQL de create e insert desde “copiar y pegar” a partir de una Hoja de Cálculo
  • Generación aleatoria de datos
  • Aprender la sintaxis SQL de: create table, select, insert, index, trigger, PL/SQL package, and view utilizando ejemplos que son proporcionados por la app.


Instalar Quick SQL

Desde la página de inicio de Application Express ingresamos al módulo de Aplicaciones Empaquetadas y seleccionamos Quick SQL.


Hacemos clic en el botón Instalar Aplicación Empaquetada.

Una vez instalada la aplicación en nuestro Espacio de Trabajo tendremos la opción de Gestionar o Ejecutar directamente la aplicación.

Al hacer clic en el botón Gestionar, se abre una ventana modal con 3 opciones:

  • Cambiar Autenticación
  • Desbloquear
  • Eliminar


Si desbloqueamos la aplicación, la misma quedara inhabilitada para futuras actualizaciones de Oracle.

Cerramos la ventana modal y ejecutamos la aplicación.

Ingresamos nuestras credenciales y la primera página que se muestra es la de Bienvenida a la aplicación.


En la cual tenemos que completar la configuración de la aplicación. En el ACL (Lista de Control de Acceso) seleccionamos el que sea conveniente para nuestras necesidades.

Hay tres niveles:

  • Acceso de tipo solo lectura para cualquier usuario autenticado
  • Acceso de tipo contribuidor para cualquier usuario autenticado
  • Acceso de tipo restrictivo para usuarios definidos en la Lista de Control de Acceso

Podemos además añadir usuarios a nuestra lista. Nuestro usuario el cual usamos para instalar la aplicación se configura automáticamente como un usuario de tipo administrador.

Una vez terminada la configuración, accedemos a la página de inicio de la aplicación Quick SQL.


Esta aplicación que podemos instalarla en nuestro espacio de trabajo también la tenemos disponible en la nube, pero en este caso la aplicación esta hosteada por Oracle y su nombre es Oracle Quick SQL.

Para acceder a esta aplicación sólo necesitamos tener una cuenta gratuita de Oracle.

Como podemos observar esta aplicación tiene dos grandes cuadrantes, el de la izquierda nos permite ingresar la escritura reducida o con la sintaxis markdown y a la derecha nos muestra las sentencias SQL generadas.

Veamos un ejemplo que expone la aplicación en su documentación:

Ejemplo 1

Este es un ejemplo de un modelo de datos de dos tablas con la tabla de empleados como una tabla secundaria implícita de la tabla de departamentos. La tabla de departamentos se identifica como una tabla secundaria al identarla uniformemente debajo de la tabla de empleados. Las claves tanto primaria como la foránea se agregan automáticamente y no se especifican utilizando la sintaxis markdown. El sufijo de la columna vc50 es lo abreviado para el tipo de datos varchar2 (50), y num es la forma abreviada para el tipo de datos numérico. El /nn genera una restricción de columna no nula. El /lower generará un disparador para forzar los valores de la columna ename a minúsculas. El /insert generará inserciones SQL que se generarán con datos aleatorios para la tabla dada.
 

departments /insert 4      // inserta 4 registros en  la tabla Dept   name /nn                 // inserta una restricción  de columna no nula   location   employees /insert  14    // inserta 14 registros en la  table empleados   name /nn vc50            // restricción columna no nula y  varchar2(50)   email /lower             // disparador de columna en  minuscula   cost center num          // tipo de dato numérico   date hired   job   view emp_v departments employees  
  

Tipo de Datos

Por defecto (no ingresar nada)

El tipo de datos se ajustará por defecto a varios tamaños de varchar2 u otros tipos de datos dependiendo del nombre de la columna. Si la fecha aparece en el nombre de la columna, se asumirá que es una fecha. Si aparece una foto o un archivo en el nombre de la columna, se asumirá que es un blob. Si el nombre de la columna es correo electrónico o nombre, el tipo de datos será varchar2(255) a menos que se especifique lo contrario.

num, number

number

int, integer

integer

d, date

date

ts, timestamp

timestamp

tstz, tswtz, timestamp with local time zone

timestamp with local time zone

char, vc, varchar, varchar2, string

varchar2(4000)

vcNNN (where NNN is a number)

varchar2(NNN)

vc(NNN) (where NNN is a number)

varchar2(NNN)

vc32k

varchar2(32767), requiere que longer varchars se establezcan en Yes y que la base de datos se establezca en 12c o mejor.

clob

CLOB

blob

BLOB

file

BLOB _filename, _charset, _mimetype, _lastupd columns


Directivas de Tabla

/api

Genera la API del paquete PL/SQL para consultar, inserter, actualizer y eliminar datos de la table.

/audit

Agrega auditoría de Oracle, por defecto auditar todo sobre el nombre de la tabla.

/auditcols, /audit cols, /audit columns

Automáticamente agrega la columnas updated, updated_by, inserted, e inserted_by y el disparador lógico para popular las tablas.

/compress, /compressed

La tabla se creará comprimida.

/history

Genera código para registrar cambios en una tabla de historial para una tabla específica.

/insert NN

Genera instrucciones NN SQL INSERT con datos aleatorios.

/noload

Solo para los datos cargados de la hoja de cálculo, especifique /noload en el nivel de la tabla para no cargar los datos de la hoja de trabajo. De forma predeterminada, los datos de la hoja de cálculo generarán instrucciones SQL Insert para cargar datos de la hoja de cálculo.

/select

Genera instrucción SQL SELECT.

/rest

Genera la habilitación REST de la tabla utilizando Oracle REST Data Services (ORDS).

/uncomment, /uncommented

Si es Sí, provocará que las sentencias SELECT o INSERT SQL generadas no se comenten. Referencia /insert y /select.

@worksheet

Carga los datos desde esta hoja de cálculo cargada.


Directivas de Columnas

/idx, /index, /indexed

Crea un índice no único en la columna asociada..

/unique

Crea una restricción única.

/check

Crea una restricción de comprobación con valores delimitados por comas o espacios en blanco, p. Ej. /cc Y N

/constant

Al generar datos aleatorios para una tabla, establece esta columna con un valor constante, se agregarán comillas si es necesario.

/values

Lista de valores separados por comas para usar al generar datos aleatorios. Por ejemplo /values 1, 2, 3, 4 o /values Sí, No.

/upper

Fuerza los valores de columna a mayúsculas.

/lower

Fuerza los valores de columna a minúsculas.

/mask

Para usar al cargar columnas de tipo fecha de una hoja de cálculo. Por ejemplo /mask [máscara de formato de fecha]

/nn, /not null

Agrega una restricción no nula en la columna.

/between

Agrega una restricción between en la columna.

/hidden, /invisible

Las columnas ocultas no se muestran usando select * from table.

/references, /reference, /fk

Referencias de claves foraneas, por ej. /references nombre_tabla. También puede hacer referencia a tablas que no son parte de su modelo.

/pk

Identifica una sola columna como clave principal de tabla. Se recomienda no especificar manualmente las claves principales y dejar que esta aplicación las cree por usted.

--, [ comments ]

Incluya comentarios usando corchetes o usando la sintaxis dash dash.

@worksheet

Cargue los datos desde esta columna de la hoja de cálculo.


Generar Instrucciones SQL

Veamos cómo funciona esta aplicación. Insertamos el código del ejemplo 1 en el cuadrante de la izquierda:

departments /insert 4    name /nn    location    employees /insert 14       name /nn vc50       email /lower       cost center num       date hired       job view emp_v departments employees 

Inmediatamente veremos las instrucciones SQL generadas en el cuadrante de la derecha:


En el cual se generan las siguientes instrucciones:
-- Create tables
-- Triggers
-- Indexes
-- Create Views
-- Inserts 4 registros en la tabla DEPARTAMENTS
-- Inserts 14 registros en la tabla EMPLOYEES

Podemos guardar el modelo haciendo clic en el botón Save. Una importante aclaración es que esta aplicación no ejecuta SQL. Nosotros podemos ejecutar el SQL usando livesql.oracle.com.


Además, podemos ver todos los modelos guardados haciendo clic en el botón “Save Models”.


Para finalizar tenemos la opción de configuración en la aplicación donde podemos configurar cómo queremos que se comporte la aplicación.


Por ejemplo, si ingresamos la siguiente sintaxis reducida en el cuadrante izquierdo:

 demo_cmo /insert 4   nombre /nn vc25   ciudad vc10   fecha_nac date   email /lower 

Obtendremos en el cuadrante derecho las siguientes instrucciones SQL:

-- create tables
create table DEMO_CMO (
    ID                             NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY  
                                   constraint DEMO_CMO_ID_PK primary key,
    NOMBRE                         VARCHAR2(25) not null,
    CIUDAD                         VARCHAR2(10),
    FECHA_NAC                      DATE,
    EMAIL                          VARCHAR2(255)
)
;


-- triggers
create or replace trigger DEMO_CMO_BIU
    before insert or update 
    on DEMO_CMO
    for each row
begin
    :new.EMAIL := LOWER(:new.EMAIL);
end;
/

insert into DEMO_CMO (
    ID,
    NOMBRE,
    CIUDAD,
    FECHA_NAC,
    EMAIL
) values (
    1,
    'Quam',
    'Consectetu',
    sysdate - 54,
    'gricelda.luebbers@aaab.com'
);

insert into DEMO_CMO (
    ID,
    NOMBRE,
    CIUDAD,
    FECHA_NAC,
    EMAIL
) values (
    2,
    'Dui',
    'Eu',
    sysdate - 42,
    'dean.bollich@aaac.com'
);

insert into DEMO_CMO (
    ID,
    NOMBRE,
    CIUDAD,
    FECHA_NAC,
    EMAIL
) values (
    3,
    'Lorem',
    'Fames',
    sysdate - 71,
    'milo.manoni@aaad.com'
);

insert into DEMO_CMO (
    ID,
    NOMBRE,
    CIUDAD,
    FECHA_NAC,
    EMAIL
) values (
    4,
    'Vel',
    'Iaculis',
    sysdate - 90,
    'laurice.karl@aaae.com'
);

-- load data
 
-- Generated by Quick SQL Friday March 30, 2018  15:03:40
 
/*
demo_cmo /insert 4
  nombre /nn vc25
  ciudad vc10
  fecha_nac date
  email /lower

# settings = {  }
*/

Aprendiendo la sintaxis markdown podemos agilizar muchísimo nuestro trabajo a la hora de crear modelos de datos o utilizar modelos ya existentes.

Te invito a que empieces a trabajar con esta gran aplicación. Por otro lado, si quieres iniciarte sin tener que instalar ninguna app en tu espacio de trabajo puedes hacerlo desde el Quick SQL hosteado en la nube por Oracle AQUÍ.

En esta aplicación en la nube además disponemos de modelos de ejemplo para aprender a usar esta herramienta.


Y una característica especial es que podemos visualizar el diagrama entidad – relación del modelo de ejemplo con solo hacer clic en el enlace View Diagram.


La muy buena noticia es que en la versión que se viene de Oracle APEX 5.2 vamos a tener acceso a esta aplicación desde el mismo módulo del Taller de SQL dentro de SQL Scripts.


Y con ella será mucho más fácil generar los scripts que necesitamos para nuestra aplicación en APEX.



Clarisa Maman Orfali es fundadora y CEO de ClarTech Solutions Inc. Se ha convertido en Oracle ACE hace algunos años, tiene más de 15 años de experiencia en el desarrollo y la capacitación en tecnologías de la información. Hace unos años descubrió la belleza de Oracle Application Express (APEX) y se ha especializado en esa área. Ella también es una Co-Fundadora y Directora del Argentina Oracle User Group (AROUG) y ha participado activamente en la organización de grandes y populares eventos. Ella tiene una gran pasión por las tecnologías de Oracle y quiere ampliar esa pasión e influencia transfiriendo su conocimiento y experiencia a la totalidad de las comunidades de Oracle América Latina y en todo el mundo.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.