jueves, 7 de marzo de 2013

Oracle Forms 10g SOA


Oracle Forms es un componente de Oracle Fusion Middleware, es de larga información de Oracle la en tecnología para diseñar y construir aplicaciones empresariales de forma rápida y eficiente. Oracle mantiene su compromiso con el desarrollo de esta tecnología, y la liberación permanente como un componente de la plataforma Oracle. Este compromiso continuo a la tecnología de formularios le permite aprovechar su inversión existente al permitir el mejoramiento y la integración de aplicaciones Oracle Forms existentes para aprovechar las tecnologías web y las arquitecturas orientadas a servicios (SOA).

La herramienta Forms incluida dentro ORACLE DEVELOPER SUITE (DS) nos permite atacar nuestra base de datos de producción para facilitar a los usuarios un acceso transparente a los datos almacenados en la misma.

Forms Developer 10g es una evolución de las anteriores herramientas de desarrollo que Oracle Corporation que ya tenía en el mercado (Oracle Developer 2000 y posteriormente Oracle Developer 6i). En todas las versiones se sigue una misma metodología de programación, por lo que no es difícil para el programador pasar de una versión a la siguiente con unos mínimos costes de tiempo. Sin embargo la mayor diferencia la notaran los usuarios finales que utilicen desarrollos ya que en las últimas versiones el entorno de trabajo se realiza a través de un navegador Web exclusivamente y no sobre ventanas.

SOA  provocó un animado debate cuando irrumpió en la escena en 2005. Sus abogados dijeron que SOA remplazaría la tradicional arquitectura de TI. Los tradicionalistas respondieron que SOA no era realmente nuevo, sólo un grupo de viejas (pero buenas) ideas sobre la encapsulación y el acoplamiento flexible.
Hay algo de verdad en ambas posiciones, pero ambos son fundamentalmente inexactos. Aunque SOA incluye primeras ideas arquitectónicas, es un estilo distinto que marca un importante paso adelante. Y, para obtener los máximos beneficios de SOA, una empresa necesita arquitectónicos tradicionales disciplinas y métodos.

SOA se ha establecido como un estilo arquitectónico maduro. Su implementación en las empresas está creciendo y continuará ganando más amplia adopción. El advenimiento de la computación en nube está reforzando el valor de SOA, como SOA facilita el uso efectivo de la Nube.

Por esa misma razón es que el manejo de forms en Oracle 10g contribuye al manejo adecuado  y eficaz de la información en la red, lo cual como se ve en cualquier sistema automatizado de la actualidad debería de plantearse.

Grupodivisoft.com


martes, 5 de marzo de 2013

MERGE en ORACLE


Se utiliza para seleccionar filas de una o más fuentes de actualización o inserción en una tabla o vista. Puede especificar condiciones para determinar valores para actualizar o insertar en la tabla o vista.

Esta declaración es una manera conveniente de combinar múltiples operaciones. Esto le permite evitar múltiples INSERT, ACTUALIZAR y ELIMINAR DML.
MERGE es una afirmación determinista. No se puede actualizar la misma fila de la tabla de destino varias veces en el mismo MERGE comunicado.

La sintáxis de MERGE está pensada para que la fuente de datos que se va a insertar sea una tabla o una consulta, de esta manera:

MERGE INTO [tabla_destino]
USING ([tabla o vista o consulta])
ON ([condición de existencia de registro])
WHEN MATCHED THEN [sentencia de actualización]
WHEN NOT MATCHED THEN [sentencia de inserción];

A veces en que los datos a incorporar no provienen de ninguna tabla, sino que se trata de un único registro enviado por una aplicación (por ejemplo a través de parámetros). Una forma de poder aprovechar la sentencia MERGE en estos casos, es construir una consulta sobre la tabla DUAL que convenientemente contiene una única fila.

Partiendo de una tabla tabla_destino, donde queremos hacer la actualización de datos:
CREATE TABLE tabla_destino (a int, b varchar2(10));
Si:
              Nuestro registro a insertar es {param_a, param_b}
              La condición de que el registro exista es la columna a
              Lo que queremos actualizar en caso que el registro exista es la columna b.

Entonces usamos MERGE así:

MERGE INTO tabla_destino td
USING (SELECT param_a a FROM dual) d
ON (td.a = d.a)
WHEN MATCHED THEN UPDATE SET td.b = param_b
WHEN NOT MATCHED THEN INSERT (td.a, td.b) VALUES (param_a, param_b);

En la línea 2 (USING) seleccionamos el registro que participa en la condición que el registro exista.

En la línea 3 especificamos cual es la condición que se considera que el registro ya existe
Las líneas 4 y 5 actualizan o insertan el registro.

Una forma simplificada y equivalente es la siguiente:

MERGE INTO tabla_destino td
USING dual d
ON (td.a = param_a)
WHEN MATCHED THEN UPDATE SET td.b = param_b
WHEN NOT MATCHED THEN INSERT (td.a, td.b) VALUES (param_a, param_b);

Se recomienda el uso de MERGE ya que es una única sentencia SQL y naturalmente está optimizada por el motor. Hay excepciones como es el caso de cargas masivas de datos con millones de registros donde la performance de MERGE se degrada. Allí existen otras alternativas más eficientes.

grupodivisoft.com