IBM InfoSphere

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 203

IBM InfoSphere DataStage y QualityStage

Versión 8 Release 5

Guía de conectividad para bases de


datos Oracle



SC11-3560-03
IBM InfoSphere DataStage y QualityStage
Versión 8 Release 5

Guía de conectividad para bases de


datos Oracle



SC11-3560-03
Nota
Antes de utilizar esta información y el producto al que da soporte, lea la información del apartado “Avisos y marcas
registradas” en la página 185.

© Copyright IBM Corporation 2008, 2010.


Contenido
Capítulo 1. Migración de trabajos para Utilización de sentencias SQL definidas por el
utilizar conectores . . . . . . . . . . 1 usuario . . . . . . . . . . . . . . . 50
Uso de la interfaz de usuario para migrar trabajos . . 1 Definición de datos de salida . . . . . . . . 51
Uso de la línea de mandatos para migrar trabajos . . 3 Acerca de la página Salida . . . . . . . . 51
Lectura de datos Oracle . . . . . . . . . . 54
Utilización de consultas generadas . . . . . 55
Capítulo 2. Etapas en desuso . . . . . 7 Ejemplo de una sentencia Select de SQL . . . . 55
Utilización de consultas definidas por el usuario 55
Capítulo 3. Etapa Oracle Enterprise . . . 9 Consideraciones sobre el tipo de datos DATE . . . 56
Acceso a bases de datos Oracle . . . . . . . . 10 Soporte de tipos de datos Oracle . . . . . . . 56
Manejo de caracteres especiales (# y $) . . . . 11 Tipos de datos de carácter . . . . . . . . 56
Carga de tablas . . . . . . . . . . . . 12 Tipos de datos numéricos. . . . . . . . . 57
Conversión de tipos de datos - grabación en Tipos de datos numéricos adicionales para Oracle 58
Oracle . . . . . . . . . . . . . . . 13 Tipos de datos Date . . . . . . . . . . 60
Conversión de tipos de datos - grabación desde Tipos de datos diversos . . . . . . . . . 61
Oracle . . . . . . . . . . . . . . . 14 Manejo de los caracteres $ y # . . . . . . . . 62
Ejemplos . . . . . . . . . . . . . . . 14
Búsqueda en una tabla de Oracle . . . . . . 14 Capítulo 5. Etapas Oracle OCI Load . . 65
Actualización de una tabla de Oracle . . . . . 16 Funcionalidad de las etapas Oracle OCI Load . . . 65
Tareas necesarias . . . . . . . . . . . . 17 Requisitos de configuración de las etapas Oracle
Actualización de una base de datos Oracle . . . 17 OCI Load . . . . . . . . . . . . . . . 65
Supresión de filas de una base de datos Oracle 17 Plataformas . . . . . . . . . . . . . 66
Carga de una base de datos Oracle . . . . . 18 Oracle Enterprise Manager . . . . . . . . 66
Lectura de una base de datos Oracle . . . . . 18 Modalidades de carga . . . . . . . . . . . 66
Realización de una búsqueda directa en una tabla Modalidad de carga automática . . . . . . 66
de base de datos Oracle . . . . . . . . . 19 Modalidad de carga manual . . . . . . . . 66
Realización de una búsqueda en memoria en una Carga de una base de datos Oracle . . . . . . 67
tabla de base de datos Oracle . . . . . . . 19 Propiedades . . . . . . . . . . . . . . 67
Página Etapa . . . . . . . . . . . . . . 19
Separador Avanzado . . . . . . . . . . 19
Correlación de soporte multilingüístico . . . . 20
Capítulo 6. Conector Oracle. . . . . . 73
Página Entradas . . . . . . . . . . . . . 21 Requisitos para la instalación y configuración . . . 73
Separador Propiedades del enlace de entrada . . 21 Utilización del conector Oracle . . . . . . . . 74
Separador Particionamiento . . . . . . . . 29 Lectura de datos de una base de datos Oracle . . 74
Página Salidas . . . . . . . . . . . . . 31 Grabación de datos en una base de datos Oracle 75
Separador Propiedades del enlace de salida . . 32 Búsqueda de datos en una base de datos Oracle 76
Tareas comunes para la lectura y la grabación de
datos . . . . . . . . . . . . . . . . 77
Capítulo 4. Etapas Oracle OCI . . . . . 37 Establecimiento de privilegios de usuario
Funcionalidad de las etapas Oracle OCI . . . . . 38 necesarios . . . . . . . . . . . . . . 77
Requisitos de configuración de las etapas Oracle Importación de metadatos Oracle . . . . . . 78
OCI . . . . . . . . . . . . . . . . . 39 Creación de un trabajo que incluye el conector
La conexión Oracle . . . . . . . . . . . . 39 Oracle y los enlaces necesarios . . . . . . . 80
Definición de la conexión Oracle . . . . . . . 40 Configuración de un trabajo paralelo . . . . . 82
Conexión con una base de datos Oracle . . . . 40 Definición de una conexión a una base de datos
Definición de la correlación de juego de caracteres 41 Oracle . . . . . . . . . . . . . . . 95
Conversión de un proyecto de Oracle 8 a Oracle 9 o Configuración de las definiciones de columna en
10 . . . . . . . . . . . . . . . . . 41 un enlace . . . . . . . . . . . . . . 96
Definición de datos de entrada . . . . . . . . 42 Especificación de la modalidad de lectura y el
Acerca de la página Entrada . . . . . . . . 42 origen de datos. . . . . . . . . . . . 100
Manejo de filas de rechazo . . . . . . . . 48 Especificación de la modalidad de grabación y
Grabación de datos en Oracle . . . . . . . . 49 la tabla de destino . . . . . . . . . . . 101
Sentencias SQL y la etapa Oracle OCI . . . . 49 Rechazo de registros que contienen errores . . 103
Acceso al Creador de SQL desde una etapa de Compilación y ejecución de un trabajo . . . . 106
servidor . . . . . . . . . . . . . . 49 Opciones para la lectura y grabación de datos . . 106
Utilización de sentencias SQL generadas. . . . 49

© Copyright IBM Corp. 2008, 2010 iii


Control del nivel de aislamiento de Lienzo Selección de tablas . . . . . . . . 157
transacciones . . . . . . . . . . . . 106 Página Selección . . . . . . . . . . . . 158
Configuración de la captación previa de filas 107 Cuadrícula de selección de columnas . . . . 158
Establecimiento del tamaño de matriz . . . . 108 Panel Filtro . . . . . . . . . . . . . 160
Propagación de columnas en tiempo de Panel Expresión de filtros . . . . . . . . 160
ejecución . . . . . . . . . . . . . . 108 Página Grupo . . . . . . . . . . . . . 160
Cómo descartar campos que no coinciden . . . 110 Cuadrícula de agrupación . . . . . . . . 160
Realización de acciones en la tabla antes de Panel Filtro . . . . . . . . . . . . . 162
grabar . . . . . . . . . . . . . . . 111 Panel Expresión de filtros . . . . . . . . 162
Ejecución de una sentencia SQL antes o después Página Inserción . . . . . . . . . . . . 162
de procesar datos . . . . . . . . . . . 112 Cuadrícula Insertar columnas . . . . . . . 162
Sustitución de marcadores por números de nodo 113 Página Actualización . . . . . . . . . . . 163
Opciones para los datos de carga masiva . . . . 115 Cuadrícula de Columna de actualización . . . 163
Gestión de restricciones de tabla y Panel Filtro . . . . . . . . . . . . . 163
desencadenantes para una carga masiva . . . 115 Panel Expresión de filtros . . . . . . . . 164
Configuración de la memoria caché de fechas de Página Supresión . . . . . . . . . . . . 164
Oracle para una carga masiva . . . . . . . 116 Panel Filtro . . . . . . . . . . . . . 164
Gestión de índices . . . . . . . . . . . 117 Panel Expresión de filtros . . . . . . . . 164
Control de la carga masiva de registros . . . . 118 Página SQL . . . . . . . . . . . . . . 164
Distinción entre mayúsculas y minúsculas . . . . 119 Cuadrícula Resolución de columnas . . . . . 164
Caracteres de espacio en blanco, valores NULL y Editor de expresiones. . . . . . . . . . . 165
valores de serie vacía . . . . . . . . . . . 120 Editor de expresiones principal . . . . . . 166
Utilización del conector Oracle en un trabajo de Editor de expresiones de Cálculo/Función/Caso 169
etapa Distributed Transaction . . . . . . . . 121 Menús del editor de expresiones . . . . . . 171
Diagnóstico y recuperación de errores . . . . . 122 Cómo unir tablas . . . . . . . . . . . . 173
Configuración del conector Oracle para la Especificación de uniones . . . . . . . . 174
migración tras error transparente de la Recuadro de diálogo Propiedades de unión . . 174
aplicación . . . . . . . . . . . . . 122 Recuadro de diálogo Alternar relación . . . . 175
Registro del entorno Oracle. . . . . . . . 125 Diálogos de propiedades . . . . . . . . . 175
Propiedades que controlan la anomalía de Recuadro de diálogo Propiedades de tabla . . 176
trabajos . . . . . . . . . . . . . . 125 Recuadro de diálogo Propiedades de SQL . . . 176
Mensajes . . . . . . . . . . . . . . 126
Referencia . . . . . . . . . . . . . . 137 Acceso a la documentación de
Correlación de tipos de datos y tipos de datos productos . . . . . . . . . . . . . 177
Oracle . . . . . . . . . . . . . . . 137
Vistas de diccionario . . . . . . . . . . 148
Variables de entorno . . . . . . . . . . 150 Lectura de la sintaxis de la línea de
mandatos . . . . . . . . . . . . . 179
Capítulo 7. Creación de sentencias
SQL . . . . . . . . . . . . . . . 153 Accesibilidad de los productos. . . . 181
Inicio del Creador de SQL desde un editor de
etapas . . . . . . . . . . . . . . . . 153 Cómo ponerse en contacto con IBM 183
Inicio del Creador de SQL . . . . . . . . . 153
Creación de sentencias SELECT . . . . . . . 154 Avisos y marcas registradas . . . . . 185
Creación de sentencias INSERT . . . . . . . 154
Creación de sentencias UPDATE . . . . . . . 155
Enlaces a sitios web que no son de
Creación de sentencias DELETE . . . . . . . 156
La interfaz del Creador de SQL . . . . . . . 156 IBM. . . . . . . . . . . . . . . . 189
Barra de herramientas . . . . . . . . . 156
Panel de árbol . . . . . . . . . . . . 157 Índice. . . . . . . . . . . . . . . 191

iv Guía de conectividad para bases de datos Oracle


Capítulo 1. Migración de trabajos para utilizar conectores
Para beneficiarse de la funcionalidad adicional que ofrecen los conectores, utilice la
Herramienta de migración de conectores para migrar los trabajos para que utilicen
conectores en lugar de etapas de conector u operador.

Para ejecutar la Herramienta de migración de conectores, iníciela desde el menú


Programas de Microsoft Windows o desde la línea de mandatos. Si inicia la
herramienta desde la línea de mandatos, dispondrá de opciones adicionales que no
se facilitan en la interfaz de usuario.

La interfaz de usuario le guía a través del proceso de evaluar qué trabajos,


contenedores compartidos y etapas migrar. Seleccione los trabajos que desea
migrar y, además del nombre del trabajo, la herramienta muestra un icono que
indica si el trabajo puede migrarse completamente o no, o si no se puede migrar.
Para refinar la lista de trabajos a evaluar, puede especificar que únicamente
aparezcan los trabajos que incluyen etapas de conector u operador específicas. La
herramienta le da la oportunidad de realizar una copia de seguridad del trabajo
antes de migrarlo. Puede realizar una copia de seguridad del trabajo y,
posteriormente, migrarla; o bien puede realizar una copia de seguridad del trabajo
y, a continuación, migrar el trabajo original. En cualquiera de los casos, es
imposible que el trabajo original se pierda. El trabajo se migra y se coloca en la
misma carpeta que el trabajo original, y el archivo de registro CCMigration.log,
que registra los resultados de la migración, se crea en el directorio actual.

Las opciones de la línea de mandatos de la Herramienta de migración de


conectores facilita la misma funcionalidad que la interfaz de usuario, además de
algunas opciones adicionales. Con la línea de mandatos puede realizar estas tareas
adicionales:
v Especificar una lista de nombres de trabajos para que se tengan en cuenta para
la migración.
v Especificar una lista de nombres de contenedores compartidos para que se
tengan en cuenta para la migración.
v Especificar una lista de nombres de tipos de etapa para limitar los trabajos que
se tienen en cuenta para la migración.
v Ejecute una migración de prueba, en la que realmente no tiene lugar una
migración pero los posibles resultados de la migración sí se colocan en el
archivo de registro. Puede revisar los resultados y, a continuación, refinar la
migración según convenga antes de ejecutar la migración real.
v Producir un informe de los trabajos y sus etapas y tipos de etapa

Nota: A lo largo de toda esta documentación, el término "trabajo" hace referencia a


contenedores compartidos paralelos y contenedores compartidos de servidor, así
como a trabajos de IBM® InfoSphere DataStage.

Uso de la interfaz de usuario para migrar trabajos


Utilice la Herramienta de migración de conectores para visualizar qué trabajos y
etapas pueden migrarse y, a continuación, mígrelos para que utilicen conectores en
lugar de etapas de conector u operador.

© Copyright IBM Corp. 2008, 2010 1


Utilice los mismos detalles de conexión de proyecto para conectarse a la
Herramienta de migración de conectores que los que utiliza para conectarse al
cliente de InfoSphere DataStage and QualityStage Designer o InfoSphere DataStage
and QualityStage Director. Debe disponer de los privilegios de usuario necesarios
para crear y modificar los trabajos que está migrando.
1. Seleccione Inicio → Programas → IBM InfoSphere Information Server →
Herramienta de migración de conectores.
2. En la ventana Iniciar sesión complete estos campos:
a. En el campo Host especifique el nombre de host de la capa de servicios.
Puede especificar un puerto opcional separándolo del nombre de host con
dos puntos. El nombre de host que especifique aquí es el mismo que
especifica al iniciar el Designer client, por ejemplo, mymachine:9080).
b. En el campo Nombre de usuario especifique su nombre de usuario de
InfoSphere DataStage.
c. En el campo Contraseña especifique su contraseña de InfoSphere DataStage.
d. En el campo Proyecto especifique el nombre del proyecto. Para acceder a un
servidor InfoSphere DataStage que es remoto del servidor de dominios,
especifique el nombre del proyecto completo: servidor:[puerto]/proyecto. Otra
opción es presionar el botón adyacente al campo Proyecto para visualizar
un recuadro de diálogo desde el cual puede seleccionar el nombre de
proyecto calificado al completo.
e. Pulse Aceptar.
3. Muestra los trabajos y etapas a tener en cuenta para la migración:
v Seleccione Ver → Ver todos los trabajos para visualizar todos los trabajos del
proyecto. Esta es la vista predeterminada.
v Seleccione Ver → Ver todos los trabajos que se pueden migrar para
visualizar todos los trabajos que están en el proyecto y que pueden migrarse
para que utilicen conectores. Los trabajos que no incluyan ninguna etapa que
se pueda migrar quedan excluidos de la lista de trabajos.
v Seleccione Ver → Ver trabajos por tipos de etapa para abrir la ventana Filtro
por tipo de etapa.
4. Realice los siguientes pasos para analizar los trabajos:
a. Marque el trabajo en la lista de trabajos.
b. Amplíe el trabajo en la lista de trabajos para visualizar las etapas del
trabajo.
c. Seleccione uno o varios trabajos y pulse Analizar.
La primera vez que se ejecuta la Herramienta de migración de conectores, un
icono indica el estado de cada trabajo. Un icono de color gris indica que el
trabajo no se puede migrar. Un icono de color gris con un signo de
interrogación indica que es posible que el trabajo se pueda migrar
correctamente. Tras el análisis, el color del trabajo, la etapa o el icono de
propiedad indica si se puede migrar o no. Un icono de color verde indica que
el trabajo, la etapa o la propiedad se puede migrar. Un icono de color rojo
indica que el trabajo o la etapa no se puede migrar. Un icono de color naranja
indica que un trabajo o etapa se puede migrar de forma parcial, y que la
propiedad de una etapa no tiene equivalente en un conector. Un icono de color
gris indica que el trabajo o la etapa no es apto para la migración.

Nota: La Herramienta de migración de conectores muestra los nombres


internos de propiedad, en lugar de los nombres que muestran las etapas. Para
visualizar una tabla que incluye un nombre interno y el nombre de
visualización correspondiente para cada propiedad, desde el cliente de IBM

2 Guía de conectividad para bases de datos Oracle


InfoSphere DataStage and QualityStage Designer abra la carpeta Tipos de etapa
en el árbol de repositorio. Efectúe una doble pulsación en el icono de etapa y, a
continuación, pulse el separador Propiedades para visualizar las propiedades
de la etapa.
5. Pulse Preferencias y seleccione cómo desea migrar el trabajo:
v Pulse Clonar y migrar el trabajo clonado para realizar una copia del trabajo
y, a continuación, migrar la copia. El trabajo original queda intacto.
v Seleccione Realizar copia de seguridad del trabajo y migrar el trabajo
original para realizar una copia del trabajo y, a continuación, migrar el
trabajo original.
v Seleccione Migrar trabajo original para migrar el trabajo sin realizar una
copia de seguridad.
6. Seleccione los trabajos y etapas para migrar, y pulse Migrar.
Los trabajos y etapas se migran y se colocan en la misma carpeta que el trabajo
original. Si el registro está habilitado, se crea un archivo de registro que incluye
un informe de la tarea de migración. Una vez migrado correctamente, aparece
una marca de selección de color verde al lado del nombre del trabajo en la lista
Trabajos para indicar que el trabajo se ha migrado.

Uso de la línea de mandatos para migrar trabajos


Ejecute la Herramienta de migración de conectores a partir de la línea de mandatos
para utilizar las opciones adicionales que no están disponibles en la interfaz de
usuario.

Para ejecutar la Herramienta de migración de conectores a partir de la línea de


mandatos, especifique el mandato CCMigration, seguido de una serie de
parámetros obligatorios y opcionales. Si la Herramienta de migración de conectores
se inicia a partir de la línea de mandatos, se mostrará su interfaz de usuario en
caso de que no se especifique ninguna de las opciones -C, -M o -B. Si no se
especifica ninguna de ellas, la migración continuará sin más interacción con el
usuario. Así, se pueden utilizar las opciones de la línea de mandatos que se
describen a continuación independientemente de si se muestra o no la interfaz de
usuario.

Una vez migrado correctamente, aparece una marca de selección de color verde al
lado del nombre del trabajo en la lista Trabajos para indicar que el trabajo se ha
migrado.
1. Desde la línea de mandatos del cliente de IBM InfoSphere DataStage vaya al
directorio <InformationServer>\Clients\CCMigrationTool.
2. Especifique el mandato CCMigration, seguido de los siguientes parámetros
obligatorios:
v -h host:puerto, donde host:puerto es el nombre de host y el puerto del servidor
InfoSphere DataStage. Si no especifica un puerto, el puerto es 9080 de forma
predeterminada.
v -u nombre de usuario, donde nombre de usuario es el nombre del usuario de
InfoSphere DataStage.
v -p contraseña, donde contraseña es la contraseña del usuario de InfoSphere
DataStage
v -P proyecto, donde proyecto es el nombre del proyecto al que se conecta. Para
especificar un servidor InfoSphere DataStage que es remoto del servidor de
dominios, especifique el nombre de proyecto totalmente calificado con el
formato servidor:[puerto]/proyecto.

Capítulo 1. Migración de trabajos para utilizar conectores 3


v Es uno de los siguientes:
– -M Si especifica este parámetro, se migran los trabajos originales y no se
crean trabajos de copia de seguridad.
– -B extensión del nombre del trabajo, donde extensión del nombre del trabajo es
un conjunto de caracteres alfanuméricos y guiones bajos. Si especifica este
parámetro, la Herramienta de migración de conectores crea los trabajos de
copia de seguridad, nombra los trabajos de copia de seguridad como
nombre del trabajo de origen+extensión del nombre del trabajo y, a continuación,
migra los trabajos originales. Los trabajos de copia de seguridad se
guardan en la misma ubicación del repositorio que los trabajos de origen.
– - C extensión del nombre del trabajo, donde extensión del nombre del trabajo es
un conjunto de caracteres alfanuméricos y guiones bajos. Si especifica este
parámetro, la Herramienta de migración de conectores clona los trabajos
de origen, nombra los trabajos clonados como nombre del trabajo de
origen+extensión del nombre del trabajo y, a continuación, migra los trabajos
clonados. Los trabajos clonados se guardan en la misma ubicación del
repositorio que los trabajos de origen.
Si especifica una de estas tres opciones, la migración continúa sin requerir más
información por parte del usuario. En caso de que no especifique -M, -B o - C,
aparece la interfaz de usuario, de manera que pueda realizar más selecciones
sobre cómo migrar los trabajos.
3. Opcional: Especifique alguno de los siguientes parámetros opcionales:
v -L archivo de registro, donde archivo de registro es el nombre de archivo y la vía
de acceso al archivo de registro que registra los resultados de la migración.
v -S tipos de etapa, donde tipos de etapa es una lista separada por comas de tipos
de etapa. De forma predeterminada, la Herramienta de migración de
conectores migra todos los tipos de etapa. Utilice este parámetro para migrar
únicamente los trabajos que incluyen los tipos de etapa especificados. Si
especifica tanto el parámetro -S como el -J, únicamente se migrarán los tipos
de etapa especificados de los trabajos especificados. Si especifica el parámetro
-S y no especifica el parámetro -C, -M o -B, únicamente aparecen los trabajos
que incluyen los tipos de etapa especificados en la lista de trabajos que se
muestra en la interfaz de usuario. La limitación de los trabajos que se
muestran puede reducir de forma significativa el tiempo de inicio de la
Herramienta de migración de conectores.
v -J nombres de trabajos, donde nombres de trabajos es una lista separada por
comas de trabajos. De forma predeterminada, la Herramienta de migración
de conectores migra todos los trabajos aptos del proyecto. Utilice este
parámetro para migrar únicamente unos trabajos concretos. Si especifica el
parámetro -J y no especifica el parámetro -C, -M o -B, únicamente aparecen
los trabajos especificados en la lista de trabajos que se muestra en la interfaz
de usuario. La limitación de los trabajos que se muestran puede reducir de
forma significativa el tiempo de inicio de la Herramienta de migración de
conectores.
v -cnombres de contenedores compartidos, donde nombres de contenedores
compartidos es una lista separada por comas de contenedores compartidos. De
forma predeterminada, la Herramienta de migración de conectores migra
todos los contenedores compartidos aptos del proyecto. Utilice este
parámetro para migrar únicamente unos contenedores compartidos concretos.
Si especifica el parámetro -c y no especifica el parámetro -C, -M, o -B,
únicamente aparecen los contenedores compartidos especificados en la lista
de trabajos que se muestra en la interfaz de usuario. La limitación de los

4 Guía de conectividad para bases de datos Oracle


contenedores compartidos que se muestran puede reducir de forma
significativa el tiempo de inicio de la Herramienta de migración de
conectores.
v -R Si especifica este parámetro, la Herramienta de migración de conectores
informa de los detalles de la migración que tendría lugar si se migraran los
trabajos especificados, pero no lleva a cabo una migración real. Los detalles
aparecen en el archivo de registro especificado mediante el parámetro -L.
v -A Si especifica este parámetro, la Herramienta de migración de conectores
añade una anotación al diseño del trabajo. La anotación describe las etapas
migradas, el trabajo desde el que se han migrado y la fecha de la migración.
v -darchivo de vuelco del trabajo, donde archivo de vuelco del trabajo es el nombre
de archivo y la vía de acceso a un archivo en el que se graba una lista de
trabajos, los contenedores compartidos y las etapas. El empleo de un archivo
de vuelco del trabajo es útil en los casos en que desee determinar qué
trabajos son adecuados para una migración. Puede utilizar el parámetro -d
con los parámetros -J, -c y -S para enumerar trabajos concretos, contenedores
compartidos y tipos de etapa, respectivamente.

El siguiente mandato inicia la Herramienta de migración de conectores, se conecta


al project billsproject en el servidor dsserver como usuario billg, y migra los
trabajos db2write y db2upsert:
CCMigration -h dsserver:9080 -u billg -p padd0ck -P billsproject -J db2write,db2upsert -M

Capítulo 1. Migración de trabajos para utilizar conectores 5


6 Guía de conectividad para bases de datos Oracle
Capítulo 2. Etapas en desuso
Los conectores, que ofrecen una mejor funcionalidad y rendimiento, sustituyen
algunas etapas, que han caído en desuso y se han eliminado de la paleta. No
obstante, puede seguir utilizando las etapas en desuso en trabajos, y puede volver
a añadirlas a la paleta.

Los siguientes tipos de etapa se han eliminado de la paleta para el lienzo de


trabajos paralelos:
v DB2Z
v DB2 UDB API
v DB2 UDB Load
v Dynamic RDBMS
v Oracle OCI Load
v Oracle Enterprise
v Teradata API
v Teradata Enterprise
v Teradata Load
v Teradata Multiload
v WebSphere MQ

El tipo de etapa siguiente se ha eliminado de la paleta para el lienzo de trabajos de


servidor:
v Dynamic RDBMS

Cuando cree trabajos nuevos, considere la posibilidad de utilizar conectores en


lugar de las etapas en desuso. En la tabla siguiente se describe qué conector
utilizar en lugar de cada una de las etapas en desuso:
Tabla 1. Etapas y sus conectores correspondientes
Etapas en desuso Conectores
DB2ZDB2 UDB API Conector DB2
DB2 UDB Load
Dynamic RDBMS Conector de DB2
Conector de Oracle
ODBC Connector
ODBC Enterprise ODBC Connector
Oracle OCI Load Conector de Oracle
Oracle Enterprise
Teradata API Teradata Connector
Teradata Enterprise
Teradata Load
Teradata Multiload
WebSphere MQ WebSphere MQ Connector

Para utilizar cualquiera de los tipos de etapa en desuso en trabajos nuevos, arrastre
el tipo de etapa desde el Repositorio al lienzo o a la paleta. En el árbol
Repositorio, navegue hasta Tipos de etapas. En Tipos de etapas, abra el
© Copyright IBM Corp. 2008, 2010 7
subdirectorio Paralelo o Servidor, en función de la etapa que desee utilizar.
Arrastre el tipo de etapa al lienzo del trabajo o a la paleta.

8 Guía de conectividad para bases de datos Oracle


Capítulo 3. Etapa Oracle Enterprise
La etapa Oracle Enterprise es una etapa de base de datos. Permite leer datos de
una base de datos Oracle y grabar datos en ella. También puede utilizarse junto
con una etapa Lookup para acceder a una tabla de búsqueda alojada por una base
de datos Oracle.

La etapa Oracle Enterprise puede tener un único enlace de entrada y un único


enlace de rechazo, o un único enlace de salida o un enlace de referencia de salida

La etapa realiza una de las siguientes operaciones:


v Actualiza una tabla de Oracle utilizando INSERT o UPDATE, o ambos, según
convenga. Los datos se ensamblan en matrices y se graban utilizando el proceso
de matrices de host de Oracle.
v Carga una tabla de Oracle (utilizando el cargador rápido de Oracle).
v Lee una tabla de Oracle.
v Suprime filas de una tabla de Oracle.
v Realiza una búsqueda directamente en una tabla de Oracle.
v Carga una tabla de Oracle en memoria y, a continuación, realiza una búsqueda
en la misma.

Al utilizar una etapa Oracle como origen para buscar datos, hay que tener en
cuenta algunas consideraciones sobre la denominación de las columnas Si tiene
columnas con el mismo nombre en los conjuntos de datos de búsqueda y de
origen, tenga en cuenta que la columna del conjunto de datos de origen se dirigirá
a los datos de salida. Si desea sustituir esta columna por la columna del origen de
datos de búsqueda, deberá descartar la columna de datos de origen antes de
realizar la búsqueda (puede, por ejemplo, utilizar una etapa Modify con esta
finalidad). Consulte IBM InfoSphere DataStage and QualityStage Parallel Job
Developer's Guide para obtener más detalles sobre la realización de búsquedas.

Cuando edita una etapa Oracle Enterprise, aparece el editor de la etapa Oracle
Enterprise. Se basa en el editor de etapas genérico descrito en IBM InfoSphere
DataStage and QualityStage Parallel Job Developer's Guide.

El editor de etapas tiene un máximo de tres páginas, dependiendo de si está


leyendo o grabando en una base de datos:
v Página Etapa. Siempre está presente y se utiliza para especificar información
general sobre la etapa.
v Página Entradas. Está presente cuando está grabando en una base de datos
Oracle. Aquí se especifican los detalles sobre los datos que se están grabando.
v Página Salidas. Está presente cuando está leyendo de una base de datos Oracle
o realizando una búsqueda en una base de datos Oracle. Aquí se especifican los
detalles sobre los datos que se están leyendo.

© Copyright IBM Corp. 2008, 2010 9


Acceso a bases de datos Oracle
Para utilizar la etapa Oracle Enterprise debe ejecutar Oracle 9 Enterprise Edition o
superior.

También debe realizar las siguientes tareas:


1. Crear la variable de entorno definida por el usuario ORACLE_HOME y
establecerla en la vía de acceso $ORACLE_HOME (por ejemplo,
/disk3/oracle9i).
2. Crear la variable de entorno definida por el usuario ORACLE_SID y
establecerla con el nombre de servicio correcto (por ejemplo, ODBCSOL).
3. Añadir ORACLE_HOME/bin a PATH y ORACLE_HOME/lib a LIBPATH,
LD_LIBRARY_PATH o SHLIB_PATH.
4. Disponer de privilegios de inicio de sesión en Oracle utilizando un nombre de
usuario de Oracle válido y su correspondiente contraseña. Oracle debe
reconocerlos antes de intentar acceder.
5. Disponer de privilegio SELECT sobre:
v DBA_EXTENTS
v DBA_DATA_FILES
v DBA_TAB_PARTITONS
v DBA_TAB_SUBPARTITONS
v DBA_OBJECTS
v ALL_PART_INDEXES
v ALL_PART_TABLES
v ALL_INDEXES
v SYS.GV_$INSTANCE (Sólo si se utiliza Oracle Parallel Server)

Nota: APT_ORCHHOME/bin debe aparecer antes de ORACLE_HOME/bin en


PATH.

Puede crear un rol que tenga los privilegios SELECT apropiados, de la siguiente
manera:

CREATE ROLE DSXE;


GRANT SELECT on sys.dba_extents to DSXE;
GRANT SELECT on sys.dba_data_files to DSXE;
GRANT SELECT on sys.dba_tab_partitions to DSXE;
GRANT SELECT on sys.dba_tab_subpartitions to DSXE;
GRANT SELECT on sys.dba_objects to DSXE;
GRANT SELECT on sys.all_part_indexes to DSXE;
GRANT SELECT on sys.all_part_tables to DSXE;
GRANT SELECT on sys.all_indexes to DSXE;

Una vez creado el rol, otórguelo a los usuarios que vayan a ejecutar trabajos de
IBM InfoSphere DataStage and QualityStage, de la manera siguiente:

GRANT DSXE to <id de usuario de Oracle>;

10 Guía de conectividad para bases de datos Oracle


Manejo de caracteres especiales (# y $)
Los caracteres # y $ están reservados en IBM InfoSphere DataStage y es necesario
seguir unos pasos especiales para manejar bases de datos Oracle que utilizan los
caracteres # y $ en nombres de columna. InfoSphere DataStage convierte estos
caracteres a un formato interno y, a continuación, los vuelve a convertir del modo
necesario.

Para aprovechar este recurso debe realizar las siguientes tareas:


v En InfoSphere DataStage and QualityStage Administrator, abra el diálogo
Variables de entorno para el proyecto en cuestión, y establezca la variable de
entorno DS_ENABLE_RESERVED_CHAR_CONVERT en verdadera (se puede
encontrar en la ramificación General\Personalizar).
v Evite utilizar las series __035__ y __036__ en los nombres de las columnas de
Oracle. __035__ es la representación interna de # y __036__ es la representación
interna de $.

Cuando utilice esta característica en su trabajo, deberá importar metadatos


utilizando la herramienta de importación de metadatos de conector. Evite editarlos
a mano (de este modo se reduce el riesgo de errores o confusiones).

Después de cargar la definición de la tabla, los nombres de columna internos se


muestran en lugar de los nombres de Oracle originales, tanto en las definiciones de
tabla como en el Navegador de datos. También se utilizan en las derivaciones y en
las expresiones. No obstante, los nombres originales se utilizan en las sentencias
SQL generadas y deberá utilizarlos si entra SQL en el trabajo Usted mismo.

Generalmente, en la etapa de Oracle, se pueden entrar nombres externos en


cualquier parte excepto cuando haga referencia a nombres de columnas, donde se
utilizan los nombres en el formato ORCHESTRATE.nombre_interno.

Cuando utilice la etapa de Oracle como destino, deberá entrar nombres externos de
la manera siguiente:
v Para opciones de Carga, utilice nombres externos para propiedades de lista de
selección.
v Para la opción de Inserción con actualización, para actualizar e insertar, utilice
nombres externos cuando haga referencia a nombres de columna de tablas de
Oracle, y nombres internos cuando haga referencia a nombres de columna de
etapas. Por ejemplo:
INSERT INTO nombretabla (A#, B$#) VALUES
(ORCHESTRATE.A__036__A__035__, ORCHESTRATE.B__035__035__B__036__)

UPDATE nombretabla SET B$# = ORCHESTRATE.B__035__035__B__036__ WHERE (A# =


ORCHESTRATE.A__036__A__035__)

Cuando utilice la etapa de Oracle como origen, deberá entrar nombres externos de
la manera siguiente:
v Para la lectura utilizando el método de SQL definido por el usuario, utilice
nombres externos para columnas de Oracle para SELECT: Por ejemplo:
SELECT M#$, D#$ FROM nombretabla WHERE (M#$ > 5)
v Para la lectura utilizando el método de Tabla, utilice nombres externos en las
propiedades Lista de selección y Where.

Capítulo 3. Etapa Oracle Enterprise 11


Cuando utilice la etapa de Oracle en trabajos paralelos como búsqueda, deberá
entrar nombres externos o internos de la manera siguiente:
v Para búsquedas (Lookup) utilizando el método de SQL definido por el usuario,
utilice nombres externos para columnas de Oracle para SELECT y para
columnas de Oracle en cualquier cláusula WHERE que desee añadir. Utilice
nombres internos cuando haga referencia a los nombres de columna de etapa en
la cláusula WHERE. Por ejemplo:
SELECT M$##, D#$ FROM nombretabla
WHERE (B$# = ORCHESTRATE.B__035__ B __036__)
v Para búsquedas utilizando el método de Tabla, utilice nombres externos en las
propiedades Lista de selección y Where.
v Utilice nombres internos para la opción clave en el separador Propiedades de la
página Entradas de la etapa Lookup a la que está conectada la etapa de Oracle.

Carga de tablas
Hay que tener en cuenta varios puntos al utilizar el método de Carga en esta etapa
(que utiliza el cargador rápido de Oracle) para cargar tablas con índices.

De forma predeterminada, la etapa establece las siguientes opciones en el archivo


de control de carga de Oracle:
v DIRECT=TRUE
v PARALLEL = TRUE

Esto hace que la carga se ejecute utilizando la modalidad de carga directa paralela.
Para utilizar la modalidad de carga directa paralela, la tabla no debe tener índices,
o bien debe incluir una de las propiedades de Modalidad de índice de volver a
crear (rebuild) o mantenimiento (maintenance) (consulte la sección Modalidad de
índice). Si el único índice de la tabla es de una restricción de clave exclusiva o
clave primaria, puede utilizar en su lugar la propiedad Inhabilitar restricciones
(consulte la sección Inhabilitar restricciones), que inhabilitará la restricción de
clave exclusiva o clave primaria y la volverá a habilitar tras la carga.

Si establece la propiedad Modalidad de índice en volver a crear, se establecerán las


opciones siguientes en el archivo:
v SKIP_INDEX_MAINTENANCE=YES
v PARALLEL=TRUE

Si establece la propiedad Modalidad de índice en mantenimiento, se establecerá la


opción siguiente en el archivo:
v PARALLEL=FALSE

Puede utilizar la variable de entorno APT_ORACLE_LOAD_OPTIONS para


controlar las opciones que se incluyen en el archivo de control de carga de Oracle.
Puede cargar una tabla con índices sin utilizar las propiedades Modalidad de
índice o Inhabilitar restricciones estableciendo de forma adecuada la variable de
entorno APT_ORACLE_LOAD_OPTIONS. Debe establecer la opción DIRECT o la
opción PARALLEL, o ambas, en FALSE, por ejemplo:
APT_ORACLE_LOAD_OPTIONS=’OPTIONS(DIRECT=FALSE,PARALLEL=TRUE)’

En este ejemplo la etapa todavía se ejecutará en paralelo. Sin embargo, como


DIRECT se ha establecido en FALSE, se utilizará la modalidad de vía de acceso
convencional en lugar de la modalidad de vía de acceso directa.

12 Guía de conectividad para bases de datos Oracle


Si se utiliza APT_ORACLE_LOAD_OPTIONS para establecer PARALLEL en
FALSE, debe establecer la modalidad de ejecución de la etapa de forma que se
ejecute secuencialmente en el separador Avanzado de la página Etapa (consulte la
sección Separador Avanzado).

Si carga tablas organizadas mediante índices (IOT), no debería establecer DIRECT


ni PARALLEL en TRUE porque no se permite la carga de vía de acceso paralela
directa en las IOT.

Conversión de tipos de datos - grabación en Oracle


Al grabar o cargar, la etapa Oracle Enterprise convierte automáticamente los tipos
de datos de IBM InfoSphere DataStage en tipos de datos de Oracle, según se
muestra en la tabla siguiente:
Tabla 2. Conversión de tipos de datos para grabar datos en una base de datos Oracle
Tipo de datos SQL de
InfoSphere DataStage Tipo de datos subyacente Tipo de datos Oracle
Date date DATE
Time time DATE (no soporta la
resolución de
microsegundos)
Timestamp timestamp DATE (no soporta la
resolución de
microsegundos)
Decimal decimal (p, s) NUMBER (p, s)
Numeric
TinyInt int8/uint8 NUMBER (3, 0)
SmallInt int16/uint16 NUMBER (3, 0)
Integer int32/uint32 NUMBER (10, 0)
BigInt int64 NUMBER (19, 0)
BigInt uint64 NUMBER (20, 0)
Float sfloat NUMBER
Real
Double dfloat NUMBER
Binary raw no soportado
Bit
LongVarBinary
VarBinary
Unknown serie de longitud fija en el CHAR(n)
Char formato: string[n] y
ustring[n]; longitud <= 255 donde n es la longitud de la
bytes serie
LongVarChar serie de longitud variable en VARCHAR(n)
VarChar el formato: string[max=n] y
ustring[max=n]; longitud donde n es la longitud de
máxima <= 2^31-5 bytes serie máxima
LongVarChar serie de longitud variable en VARCHAR(32)*
VarChar el formato: string y ustring

Capítulo 3. Etapa Oracle Enterprise 13


La longitud predeterminada de VARCHAR es de 32 bytes. Es decir, se asignan 32
bytes para cada campo de serie de longitud variable del conjunto de datos de
entrada. Si un campo de serie de longitud variable tiene una longitud superior a 32
bytes, la etapa emite un aviso.

Conversión de tipos de datos - grabación desde Oracle


Al leer, la etapa Oracle Enterprise convierte automáticamente los tipos de datos de
Oracle en tipos de datos de IBM InfoSphere DataStage, según se muestra en la
tabla siguiente:
Tabla 3. Conversión de tipos de datos para leer datos desde una base de datos Oracle
Tipo de datos SQL de
InfoSphere DataStage Tipo de datos subyacente Tipo de datos Oracle
Unknown string[n] o ustring[n] CHAR(n)
Char
LongVarChar Serie de longitud fija con
VarChar longitud = n
NChar
NVarChar
LongNVarChar
Unknown string[max = n] o VARCHAR(n)
Char ustring[max = n]
LongVarChar
VarChar serie de longitud variable
NChar con longitud = n
NVarChar
LongNVarChar
Timestamp Timestamp DATE
Decimal decimal (38,10) NUMBER
Numeric
Integer int32 si precision (p) <11 y NUMBER(p, s)
Decimal scale (s) = 0
Numeric
decimal[p, s] si precision (p)
=>11 y scale (s) > 0
no soportado no soportado RAW(n)

Ejemplos

Búsqueda en una tabla de Oracle


Este ejemplo muestra lo que pasa cuando se buscan datos en una tabla de Oracle.
En este caso la etapa buscará el tipo de interés para cada cliente basándose en el
tipo de cuenta. Estos son los datos que llegan al enlace primario:
Tabla 4. Ejemplo de búsqueda en una tabla de Oracle
Customer accountNo accountType balance
Latimer 7125678 plat 7890.76
Ridley 7238892 flexi 234.88
Cranmer 7611236 gold 1288.00
Hooper 7176672 flexi 3456.99

14 Guía de conectividad para bases de datos Oracle


Tabla 4. Ejemplo de búsqueda en una tabla de Oracle (continuación)
Customer accountNo accountType balance
Moore 7146789 gold 424.76

Estos son los datos de la tabla de búsqueda de Oracle:


Tabla 5. Ejemplo de búsqueda en una tabla de Oracle
accountType InterestRate
bronze 1.25
silver 1.50
gold 1.75
plat 2.00
flexi 1.88
fixterm 3.00

Esta es la salida que producirá la etapa de búsqueda:


Tabla 6. Ejemplo de búsqueda en una tabla de Oracle
Customer accountNo accountType balance InterestRate
Latimer 7125678 plat 7890.76 2.00
Ridley 7238892 flexi 234.88 1.88
Cranmer 7611236 gold 1288.00 1.75
Hooper 7176672 flexi 3456.99 1.88
Moore 7146789 gold 424.76 1.75

El trabajo se ilustra en la figura siguiente. El editor de etapas utilizado para editar


esta etapa se basa en el editor de etapas genérico. La etapa Data_set proporciona la
entrada primaria, la etapa Oracle_8 proporciona los datos de búsqueda, Lookup_1
realiza la búsqueda y produce como salida en Data_Set_3 los datos resultantes. En
la etapa de Oracle, especifique que va a buscar los datos directamente en la base
de datos Oracle, e indique también el nombre de la tabla que va a buscar. En la
etapa Lookup debe especificar la columna que está utilizando como clave para la
búsqueda.

Figura 1. Ejemplo de trabajo de búsqueda

La tabla siguiente indica las propiedades para la etapa de Oracle:

Capítulo 3. Etapa Oracle Enterprise 15


Tabla 7. Propiedades para la etapa de Oracle
Nombre de la propiedad Valor
Tipo de búsqueda Dispersa
Método de lectura Tabla
Tabla interés

Actualización de una tabla de Oracle


Este ejemplo muestra una tabla de Oracle que se actualiza con tres columnas
nuevas. La base de datos registra los registros de salud equina de un gran
semental. Se añaden los detalles de los registros de rastreo a la tabla principal y se
llenan con los datos más recientes, utilizando la columna "name" existente como
una clave. Estos son los metadatos para las nuevas columnas:
Tabla 8. Metadatos de columna en el separador Propiedades
Con
Nombre de la Tipo de posibilidades de
columna Clave SQL Ampliado Longitud Escala nulos
name Yes Char No
wormer_type Char Unicode No
dose_interval Char Unicode No
dose_level Char Unicode No

Especifique inserción con actualización como método de grabación y seleccione


Actualización e inserción definidas por el usuario como modalidad de inserción
con actualización. La columna "name" existente no se incluye en la sentencia
INSERT. Las propiedades (que muestran la sentencia INSERT) se muestran a
continuación. La sentencia INSERT es tal como la genera IBM InfoSphere
DataStage, excepto que se elimina la columna de nombre.
INSERT
INTO
horse_health
(wormer_type, dose_interval, dose_level)
VALUES
(ORCHESTRATE.name,
ORCHESTRATE.wormer_type,
ORCHESTRATE.dose_interval,
ORCHESTRATE.dose_level)

La sentencia UPDATE es como la generada automáticamente por InfoSphere


DataStage:
UPDATE
horse_health
SET
wormer_type=ORCHESTRATE.wormer_type,
dose_interval=ORCHESTRATE.dose_interval,
dose_level=ORCHESTRATE.dose_level
WHERE
(name=ORCHESTRATE.name)

16 Guía de conectividad para bases de datos Oracle


Tareas necesarias
IBM InfoSphere DataStage tiene muchos valores predeterminados, por lo que
resulta sencillo incluir etapas Oracle Enterprise en un trabajo. Esta sección
especifica los pasos mínimos necesarios para poner en funcionamiento una etapa
Oracle Enterprise. InfoSphere DataStage proporciona una interfaz de usuario
versátil, y dispone de múltiples atajos para llegar a un objetivo determinado. En
esta sección se describe el método básico, aprenderá dónde están los atajos cuando
se familiarice con el producto.

Los pasos necesarios dependerán de la finalidad con la que esté utilizando la etapa
Oracle Enterprise.

Actualización de una base de datos Oracle


Para actualizar una base de datos Oracle:
v En el separador Propiedades del enlace de entrada, bajo la categoría Destino,
especifique el método de actualización de la manera siguiente:
– Especifique un método de grabación de Inserción con actualización.
– Especifique la tabla que está grabando.
– Seleccione la modalidad de Inserción con actualización, que permite
especificar si se debe insertar y actualizar, o sólo actualizar, o si se debe
utilizar una sentencia generada automáticamente por IBM InfoSphere
DataStage o especificar una propia.
– Si ha elegido una modalidad de inserción con actualización de Actualización e
inserción definidas por el usuario, especifique la sentencia SQL de inserción
que va a utilizar. InfoSphere DataStage proporciona la sentencia generada
automáticamente como base y se puede editar según convenga.
– Si ha elegido una modalidad de inserción con actualización de Actualización e
inserción definidas por el usuario o Solamente actualización definida por el
usuario, especifique la sentencia SQL de actualización que va a utilizar.
InfoSphere DataStage proporciona la sentencia generada automáticamente
como base y se puede editar según convenga.
Bajo la categoría Conexión, puede especificar manualmente una serie de
conexión o hacer que InfoSphere DataStage genere una automáticamente
utilizando un nombre de usuario y contraseña que le suministre. En cualquier
caso deberá proporcionar un nombre de usuario y una contraseña válidos.
InfoSphere DataStage cifra la contraseña cuando utiliza la opción de
generación automática.
De forma predeterminada, InfoSphere DataStage supone que Oracle reside en
el servidor local, pero puede especificar un servidor remoto si es necesario.
Bajo la categoría Opciones:
– Si desea bajar filas rechazadas a un enlace de rechazo, establezca Rechazos de
salida en Verdadero (está establecido en falso de forma predeterminada).
v Asegúrese que se han especificado metadatos de columna para la grabación.

Supresión de filas de una base de datos Oracle


Es igual que grabar en una base de datos Oracle, con la diferencia de que tendrá
que especificar detalles de las sentencias SQL utilizadas para suprimir filas de la
base de datos:
v En el separador Propiedades del enlace de entrada:

Capítulo 3. Etapa Oracle Enterprise 17


– Seleccione un método de grabación de Suprimir filas.
– Seleccione la modalidad Suprimir filas, que permite especificar si se va a
utilizar una sentencia generada automáticamente por IBM InfoSphere
DataStage o va a especificar una propia.
– Si selecciona una modalidad de supresión definida por el usuario, especifique
la sentencia SQL de supresión que va a utilizar. InfoSphere DataStage
proporciona la sentencia generada automáticamente como base y se puede
editar según convenga.

Carga de una base de datos Oracle


Este es el método de grabación predeterminado.
v En el separador Propiedades del enlace de entrada, bajo categoría Destino:
– Especifique un método de grabación de Carga.
– Especifique la tabla que está grabando.
– Especifique la modalidad de grabación (de forma predeterminada IBM
InfoSphere DataStage añade los datos a las tablas existentes, también puede
decidir crear una tabla nueva, sustituir una tabla existente o conservar los
detalles de tabla existente pero sustituir todas las filas).
Bajo la categoría Conexión, puede especificar manualmente una serie de
conexión o hacer que InfoSphere DataStage genere una automáticamente
utilizando un nombre de usuario y contraseña que le suministre. En cualquier
caso deberá proporcionar un nombre de usuario y una contraseña válidos.
InfoSphere DataStage cifra la contraseña cuando utiliza la opción de
generación automática.
De forma predeterminada, InfoSphere DataStage supone que Oracle reside en
el servidor local, pero puede especificar un servidor remoto si es necesario.
v Asegúrese que se han especificado metadatos de columna para la grabación.

Lectura de una base de datos Oracle


Para leer una base de datos Oracle:
v En el separador Propiedades del enlace de salida:
– Seleccione un método de lectura. Es Tabla de forma predeterminada, pero
puede optar también por leer utilizando SQL generado automáticamente o
SQL generado por el usuario. La lectura funciona secuencialmente en un
único nodo a menos que especifique una propiedad Tabla de partición (que
causa la ejecución paralela en los nodos de proceso que contienen una
partición derivada de la tabla en cuestión).
– Especifique la tabla que se va a leer.
– Si utiliza un método de lectura distinto de SQL generado por el usuario,
especifique la sentencia SQL SELECT que desea utilizar. IBM InfoSphere
DataStage proporciona la sentencia generada automáticamente como base y se
puede editar según convenga.
Bajo la categoría Conexión, puede especificar manualmente una serie de
conexión o hacer que InfoSphere DataStage genere una automáticamente
utilizando un nombre de usuario y contraseña que le suministre. En cualquier
caso deberá proporcionar un nombre de usuario y una contraseña válidos.
InfoSphere DataStage cifra la contraseña cuando se utiliza la opción de
generación automática.
De forma predeterminada, InfoSphere DataStage supone que Oracle reside en
el servidor local, pero puede especificar un servidor remoto si es necesario.
18 Guía de conectividad para bases de datos Oracle
v Asegúrese que se han especificado metadatos de columna para la lectura.

Realización de una búsqueda directa en una tabla de base de


datos Oracle
Para realizar una búsqueda directa:
v Conecte la etapa Oracle Enterprise a una etapa Lookup utilizando un enlace de
referencia.
v En el separador Propiedades del enlace de salida:
– Establezca el Tipo de búsqueda en Dispersa.
– Seleccione un método de lectura. Es Tabla de forma predeterminada (lee
directamente de una tabla), pero puede optar también por leer utilizando SQL
generado automáticamente o SQL generado por el usuario.
– Especifique la tabla que se leerá durante la búsqueda.
– Si utiliza un método de lectura distinto de SQL generado por el usuario,
especifique la sentencia SQL SELECT que desea utilizar. IBM InfoSphere
DataStage proporciona la sentencia generada automáticamente como base y se
puede editar según convenga. Se utiliza si, por ejemplo, desea realizar una
búsqueda no basada en igualdad.
Bajo la categoría Conexión, puede especificar manualmente una serie de
conexión o hacer que InfoSphere DataStage genere una automáticamente
utilizando un nombre de usuario y contraseña que le suministre. En cualquier
caso deberá proporcionar un nombre de usuario y una contraseña válidos.
InfoSphere DataStage cifra la contraseña cuando utiliza la opción de
generación automática.
De forma predeterminada, InfoSphere DataStage supone que Oracle reside en
el servidor local, pero puede especificar un servidor remoto si es necesario.
v Asegúrese que se han especificado metadatos de columna para la búsqueda.

Realización de una búsqueda en memoria en una tabla de


base de datos Oracle
Este es el método predeterminado. Tiene los mismos requisitos que una búsqueda
directa, con la siguiente excepción:
v En el separador Propiedades del enlace de salida:
– Establezca el Tipo de búsqueda en Normal.

Página Etapa
El separador General permite especificar una descripción opcional de la etapa. El
separador Avanzado permite especificar el modo en que se ejecuta la etapa. El
separador Correlación de soporte multilingüístico aparece si tiene el soporte
multilingüístico habilitado en el sistema. Permite especificar una correlación de
juego de caracteres para la etapa.

Separador Avanzado
Este separador permite especificar los valores siguientes:
v Modalidad de ejecución. La etapa puede ejecutarse en modalidad paralela o en
modalidad secuencial. En modalidad paralela los datos son procesados por los
nodos que estén disponibles tal como se especifica en el archivo de

Capítulo 3. Etapa Oracle Enterprise 19


configuración, y por cualquier restricción de nodo especificada en el separador
Avanzado. En modalidad secuencial es el nodo conductor el que procesa los
datos.
v Modalidad de combinación. El valor predeterminado es Automática, lo que
permite que IBM InfoSphere DataStage combine los operadores que subyacen
bajo las etapas paralelas. A continuación estos se ejecutan en el mismo proceso si
es razonable para este tipo de etapa.
v Conservar particionamiento. Puede seleccionar Establecer o Borrar. Si selecciona
Establecer, las operaciones de lectura solicitarán que la siguiente etapa conserve
el particionamiento tal como está (se ignora en las operaciones de grabación).
Tenga en cuenta que este campo sólo es visible si la etapa tiene enlaces de
salida.
v Restricciones de agrupaciones de nodos y de recursos. Seleccione esta opción
para restringir la ejecución paralela a la agrupación de nodos o la agrupación de
recursos o agrupaciones especificados en la cuadrícula. La cuadrícula permite
realizar selecciones en las listas desplegables que se han llenado a partir del
archivo de configuración.
v Restricciones de correlaciones de nodos. Seleccione esta opción para restringir
la ejecución paralela a los nodos de una correlación de nodos definida. Puede
definir una correlación de nodos escribiendo números de nodos en el recuadro
de texto o pulsando el botón de examinar para abrir el recuadro de diálogo
Nodos disponibles y seleccionar nodos desde allí. Así se define eficazmente una
agrupación de nodos nueva para esta etapa (además de las agrupaciones de
nodos definidas en el archivo de configuración).

Correlación de soporte multilingüístico


El separador Correlación de soporte multilingüístico permite definir una
correlación de juego de caracteres para la etapa Oracle Enterprise. Puede establecer
correlaciones de juego de caracteres separadamente para tipos NCHAR y
NVARCHAR2, así como para todos los otros tipos de datos. Esto alterará
temporalmente la correlación de juego de caracteres predeterminada establecida
para el proyecto o el trabajo. Si es necesario, puede especificar que la correlación se
proporcione como un parámetro de trabajo.

El rendimiento de la carga puede mejorarse especificando una correlación de


Oracle en lugar de una correlación de IBM InfoSphere DataStage. Para ello, añada
una entrada al archivo oracle_cs, ubicado en $APT_ORCHHOME/etc, para asociar la
correlación de InfoSphere DataStage con una correlación de Oracle.

El archivo oracle_cs tiene el formato siguiente:


UTF-8 UTF8
ISO-8859-1 WE8ISO8859P1
EUC-JP JA16EUC

La primera columna contiene los nombres de correlaciones de InfoSphere


DataStage y la segunda columna los nombres de correlaciones de Oracle con las
que están asociadas.

Si utiliza el archivo de ejemplo que se muestra más arriba y especifica la


correlación de InfoSphere DataStage EUC-JP en la etapa Oracle los datos se
cargarán utilizando la correlación de Oracle JA16EUC.

20 Guía de conectividad para bases de datos Oracle


Página Entradas
La página Entradas permite especificar detalles sobre cómo la etapa Oracle
Enterprise graba datos en una base de datos Oracle. La etapa Oracle Enterprise
sólo puede tener un enlace de entrada que grabe en una tabla.

El separador General permite especificar una descripción opcional del enlace de


entrada. El separador Propiedades permite especificar detalles sobre lo que hace
exactamente el enlace. El separador Particionamiento permite especificar de qué
modo se particionan los datos entrantes antes de grabarse en la base de datos. El
separador Columnas especifica las definiciones de columna de los datos entrantes.
El separador Avanzado permite cambiar los valores de almacenamiento intermedio
predeterminados para el enlace de entrada.

En las secciones siguientes encontrará detalles sobre propiedades de la etapa


Oracle Enterprise, así como sobre particionamiento y formateo. Consulte el manual
IBM InfoSphere DataStage and QualityStage Parallel Job Developer's Guide para obtener
una descripción general de otros separadores.

Separador Propiedades del enlace de entrada


El separador Propiedades permite especificar propiedades para el enlace de
entrada. Éstas determinan el modo en que se graban los datos entrantes y dónde lo
hacen. Algunas de las propiedades son obligatorias, aunque muchas de ellas tienen
valores predeterminados. Las propiedades sin valores predeterminados aparecen
en color de aviso (rojo de forma predeterminada) y se vuelven negras cuando se
proporciona un valor para las mismas.

La tabla siguiente constituye una lista de consulta rápida de las propiedades y sus
atributos. A continuación se proporciona una descripción más detallada de cada
propiedad.
Tabla 9. Propiedades y valores del enlace de entrada
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Destino/Tabla serie N/D S (si Método de N/D
grabación =
Cargar)
Destino/ Supresión Supresión S si Método de N/D
Modalidad de generada generada grabación =
supresión de automáticamente automáticamente Suprimir filas
filas / supresión
definida por el
usuario
Destino/SQL de serie N/D S si Método de N/D
supresión grabación =
Suprimir filas

Capítulo 3. Etapa Oracle Enterprise 21


Tabla 9. Propiedades y valores del enlace de entrada (continuación)
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Destino/ Actualización e Actualización e S (si Método de N/D
Modalidad de inserción inserción grabación =
inserción con generadas generadas Inserción con
actualización automáticamente automáticamente actualización)
/Solamente
actualización
generada
automáticamente/
Actualización
definida por el
usuario e
inserción/
Solamente
actualización
definida por el
usuario
Destino/Orden Insertar y, a Insertar y, a S (si Método de N/D
de inserción con continuación, continuación, grabación =
actualización actualizar/ actualizar Inserción con
Actualizar y, a actualización)
continuación,
insertar
Destino/SQL de serie N/D N N/D
inserción
Destino/Tamaño número 500 N SQL de inserción
de la matriz de
inserción
Destino/SQL de serie N/D S (si Método de N/D
actualización grabación =
Inserción con
actualización)
Destino/Método Suprimir Cargar S N/D
de grabación filas/Inserción
con
actualización/
Carga
Destino/ Anexar/ Anexar S (si Método de N/D
Modalidad de Crear/ grabación =
grabación Sustituir/ Cargar)
Truncar
Conexión/ serie N/D S N/D
Opciones de BD
Conexión/ Generar Generar S N/D
Modalidad de automáticamente automáticamente
opciones de DB / Definido por
el usuario
Conexión/ serie N/D S (si Modalidad Modalidad de
Usuario de opciones de opciones de DB
DB = Generar
automáticamente)

22 Guía de conectividad para bases de datos Oracle


Tabla 9. Propiedades y valores del enlace de entrada (continuación)
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Conexión/ serie N/D S (si Modalidad Modalidad de
Contraseña de opciones de opciones de DB
DB = Generar
automáticamente)
Conexión/ serie N/D N Modalidad de
Opciones de opciones de DB
conexión
adicionales
Conexión/ serie N/D N N/D
Servidor remoto
Opciones/ Verdadero/Falso Falso S (si Método de N/D
Registros de grabación =
rechazo de Inserción con
salida actualización)
Opciones/ Verdadero/Falso Falso S (si Método de N/D
Descartar grabación =
silenciosamente Cargar)
las columnas
que no estén en
la tabla
Opciones/ Almacenamiento Almacenamiento Sí (si Método de N/D
Organización de dinámico/Índice dinámico grabación =
las tablas Cargar y
Modalidad de
grabación =
Crear o
Sustituir)
Opciones/ Verdadero/Falso Falso S (si Método de N/D
Truncar nombres grabación =
de columnas Cargar)
Opciones/ serie N/D N N/D
Mandato de
cierre
Opciones/ número 32 N N/D
Longitud
predeterminada
de la serie
Opciones/ Mantenimiento/ N/D N N/D
Modalidad de Volver a crear
índice
Opciones/ Verdadero/Falso Falso N Modalidad de
Añadir una índice
cláusula
NOLOGGING a
la acción de
volver a crear el
índice

Capítulo 3. Etapa Oracle Enterprise 23


Tabla 9. Propiedades y valores del enlace de entrada (continuación)
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Opciones/ Verdadero/Falso Falso N Modalidad de
Añadir una índice
cláusula
COMPUTE
STATISTICS a la
acción de volver
a crear el índice
Opciones/ serie N/D N N/D
Mandato de
apertura
Opciones/ serie N/D N N/D
Partición de
Oracle
Opciones/Crear Verdadero/Falso Falso S (si Modalidad N/D
claves primarias de grabación =
Crear o
Sustituir)
Opciones/ serie N/D N N/D
Sentencia Create
Opciones/ Verdadero/Falso Falso S (si Método de N/D
Inhabilitar grabación =
restricciones Cargar)
Opciones/Tabla serie N/D N Inhabilitar
de excepciones restricciones
Opciones/La Verdadero/Falso Falso N N/D
tabla tiene
NCHAR/
NVARCHAR

Categoría Destino
Son las propiedades disponibles en la categoría Destino.

Tabla

Especifique el nombre de la tabla en la que se debe grabar. Si es necesario, puede


especificar un parámetro de trabajo.

Modalidad de supresión de filas

Sólo aparece para el método de grabación Suprimir filas. Permite especificar cómo
se debe derivar la sentencia de supresión. Seleccione entre:
v Supresión generada automáticamente. IBM InfoSphere DataStage genera una
sentencia de supresión automáticamente, basándose en los valores que ha
suministrado para el nombre de tabla y los detalles de columna. La sentencia
puede visualizarse seleccionando la propiedad SQL de supresión.
v Supresión definida por el usuario. Seleccione esta opción para entrar su propia
sentencia de supresión. A continuación, seleccione la propiedad SQL de
supresión y edite la sentencia pro forma.

24 Guía de conectividad para bases de datos Oracle


SQL de supresión

Sólo aparece para el método de grabación de Suprimir filas. Esta propiedad


permite ver una sentencia de supresión generada automáticamente o especificar
una propia (dependiendo del valor de la propiedad Modalidad de supresión de
filas).

Modalidad de inserción con actualización

Sólo aparece para el método de grabación de Inserción con actualización. Permite


especificar cómo se deben derivar las sentencias de inserción y actualización.
Seleccione entre:
v Actualización e inserción generadas automáticamente. InfoSphere DataStage
genera sentencias de actualización e inserción automáticamente, basándose en
los valores que ha suministrado para el nombre de tabla y los detalles de
columna. Las sentencias pueden visualizarse seleccionando las propiedades SQL
de inserción y SQL de actualización.
v Solamente actualización generada automáticamente. InfoSphere DataStage
genera una sentencia de actualización automáticamente, basándose en los
valores que ha suministrado para el nombre de tabla y en los detalles de
columna. La sentencia puede visualizarse seleccionando la propiedad SQL de
actualización.
v Actualización e inserción generadas automáticamente. Seleccione esta opción
para entrar sus propias sentencias de actualización e inserción. A continuación,
seleccione las propiedades SQL de inserción y SQL de actualización y edite las
sentencias pro forma.
v Solamente actualización definida por el usuario. Seleccione esta opción para
entrar su propia sentencia de actualización. A continuación, seleccione la
propiedad SQL de actualización y edite la sentencia pro forma.

Orden de inserción con actualización

Sólo aparece para el método de grabación de Inserción con actualización. Permite


decidir entre los siguientes valores:
v Inserción y, si eso falla, actualización (Insertar y, a continuación, actualizar)
v Actualización y, si eso falla, inserción (Actualizar y, a continuación, insertar)

SQL de inserción

Sólo aparece para el método de grabación de Inserción con actualización. Esta


propiedad permite ver una sentencia de inserción generada automáticamente o
especificar una propia (dependiendo del valor de la propiedad Modalidad de
actualización). Tiene una propiedad dependiente:
v Tamaño de la matriz de inserción
Especifique el tamaño de la matriz de host de inserción. El tamaño
predeterminado es de 500 registros. Si desea que cada sentencia de inserción se
ejecute individualmente, especifique 1 para esta propiedad.

SQL de actualización

Sólo aparece para el método de grabación de Inserción con actualización. Esta


propiedad permite ver una sentencia de actualización generada automáticamente o
especificar una propia (dependiendo del valor de la propiedad Modalidad de
inserción con actualización).

Capítulo 3. Etapa Oracle Enterprise 25


Método de grabación

Seleccione entre Suprimir filas, Grabar, Inserción con actualización o Cargar (el
valor predeterminado). Inserción con actualización permite proporcionar las
sentencias SQL de inserción y actualización y utiliza procesos de matriz de host de
Oracle para optimizar el rendimiento de la inserción de registros. La carga
establece una conexión con Oracle e inserta registros en una tabla, tomando un
único conjunto de datos de entrada. La propiedad Modalidad de grabación
determina cómo se insertan en la tabla los registros de un conjunto de datos.

Modalidad de grabación

Sólo aparece para el método de grabación de Carga. Seleccione uno de los valores
siguientes:
v Anexar. Éste es el valor predeterminado. Se anexan nuevos registros a una tabla
existente.
v Crear. Crear una tabla nueva. Si la tabla de Oracle ya existe se produce un error
y el trabajo termina. Debe especificar esta modalidad si la tabla de Oracle no
existe.
v Sustituir. Primero la tabla existente se descarta y se crea una tabla totalmente
nueva en su lugar. Oracle utiliza el método de particionamiento predeterminado
para la tabla nueva.
v Truncar. Se retienen los atributos de la tabla (incluido el esquema) y las claves
de particionamiento de Oracle, pero se descartan los registros existentes. A
continuación se anexan nuevos registros a la tabla.

Categoría Conexión
Son las propiedades disponibles en la categoría Conexión.

Opciones de BD

Especifique un nombre de usuario y una contraseña para conectarse a Oracle de


esta forma:
<user=< usuario >,password=< contraseña >[,arraysize=< núm_registros >]

IBM InfoSphere DataStage no cifra la contraseña cuando se utiliza esta opción.


Arraysize sólo es relevante para el método de grabación de Inserción con
actualización.

Modalidad de opciones de DB

Si selecciona Generar automáticamente para esta propiedad, InfoSphere DataStage


creará la serie de opciones de BD. Si selecciona Definido por el usuario, tendrá que
editar la propiedad Opciones de BD Usted mismo. Si se selecciona Generar
automáticamente, hay tres propiedades dependientes:
v Usuario
El nombre de usuario que se debe utilizar en la serie Opciones de BD generada
automáticamente.
v Contraseña
La contraseña que se debe utilizar en la serie Opciones de BD generada
automáticamente. InfoSphere DataStage cifra la contraseña.

26 Guía de conectividad para bases de datos Oracle


Nota: Si tiene una contraseña con caracteres especiales, entrecomille la
contraseña. Por ejemplo: "contrase#a".
v Opciones de conexión adicionales
Permite opcionalmente especificar opciones adicionales para añadirlas a la serie
de conexión de Oracle.

Servidor remoto

Esta propiedad es opcional. Permite especificar un nombre de servidor remoto.

Categoría Opciones
Son las propiedades disponibles en la categoría Opciones.

Crear claves primarias

Esta opción está disponible con la modalidad de grabación de Crear o Sustituir. Se


establece en Falso de forma predeterminada. Si se establece en Verdadero, las
columnas marcadas como claves en el separador Columnas se marcarán como
claves primarias. Debe establecerla en Verdadero si desea grabar tablas organizadas
de índice, e indicar cuáles son las claves primarias en el separador Columnas.
Tenga en cuenta que, si la establece en Verdadero, la opción de modalidad de
índice no estará disponible.

Sentencia Create

Es una propiedad opcional que está disponible con el método de grabación de


Cargar y con la modalidad de grabación de Crear. Contiene una sentencia SQL
para crear la tabla (de lo contrario, IBM InfoSphere DataStage generará una
automáticamente).

Inhabilitar restricciones

El valor predeterminado es Falso. Establézcalo en Verdadero para inhabilitar todas


las restricciones habilitadas sobre una tabla durante la carga y, a continuación,
intente volver a habilitarlas al final de la carga. Esta opción no está disponible si
selecciona un tipo de organización de tabla de Índice para utilizar tablas
organizadas mediante índices. Cuando se establece Verdadero como valor de la
propiedad, ésta tiene una propiedad dependiente:
v Tabla de excepciones
Esta propiedad permite especificar una tabla de excepciones, que se utiliza para
registrar información de ID de fila (ROWID) sobre filas que violan restricciones
cuando las restricciones se vuelven a habilitar. La tabla ya debe existir.

Registros de rechazo de salida

Sólo aparece para el método de grabación de Inserción con actualización. El valor


predeterminado es Falso; establézcalo en Verdadero para enviar registros
rechazados al enlace de rechazo.

Descartar silenciosamente las columnas que no estén en la tabla

Sólo aparece para el método de grabación de Carga. Su valor predeterminado es


Falso. Establezca el valor en Verdadero para descartar silenciosamente todas las
columnas de entrada que no correspondan a columnas de una tabla de Oracle

Capítulo 3. Etapa Oracle Enterprise 27


existente. De lo contrario, la etapa notificará un error y terminará el trabajo.

Organización de tablas

Sólo aparece para el método de grabación de Carga utilizando la modalidad de


grabación de Crear o Sustituir. Permite especificar Índice (para tablas organizadas
mediante índices) o tablas organizadas mediante almacenamiento dinámico (éste es
el valor predeterminado). Cuando seleccione Índice, también deberá establecer
verdadero como valor de Crear claves primarias. En las tablas organizadas
mediante índices (IOT) las filas de la tabla se mantienen en el índice creado a
partir de las claves primarias.

Truncar nombres de columnas

Sólo aparece para el método de grabación de Carga. Establezca Verdadero como


valor de esta propiedad para truncar los nombres de las columnas a 30 caracteres.

Mandato de cierre

Se trata de una propiedad opcional que sólo aparece para el método de grabación
de Carga. Utilícela para especificar que cualquier mandato, entre comillas simples,
debe ser analizado y ejecutado por parte de la base de datos Oracle en todos los
nodos de proceso después de que la etapa termine de procesar la tabla de Oracle.
Si es necesario, puede especificar un parámetro de trabajo.

Longitud predeterminada de la serie

Se trata de una propiedad opcional que sólo aparece para el método de grabación
de Carga. Se establece en 32 de forma predeterminada. Establece la longitud
predeterminada de las series de longitud variable grabadas en una tabla de Oracle.
Las series de longitud variable con una longitud superior a la establecida provocan
un error.

La longitud máxima que se puede establecer es de 2000 bytes. Tenga en cuenta que
la etapa siempre asigna un número de bytes especificado para una serie de
longitud variable. En este caso, establecer un valor de 2000 asigna 2000 bytes para
cada serie. Por lo tanto, se debe establecer la longitud máxima prevista de la serie
más larga y no más.

Modalidad de índice

Se trata de una propiedad opcional que sólo aparece para el método de grabación
de Carga. Permite realizar una carga paralela directa sobre una tabla indexada sin
descartar primero el índice. Puede seleccionar la modalidad de Volver a crear o
Mantenimiento. La propiedad Índice sólo se aplica a las modalidades de grabación
de anexión o truncamiento.

Volver a crear se salta las actualizaciones de índices durante la carga de las tablas
y, en su lugar, vuelve a crear los índices una vez finalizada la carga utilizando el
mandato ALTER INDEX REBUILD de Oracle. La tabla debe contener un índice y
los índices de la tabla no deben estar particionados. La opción de Volver a crear
tiene dos propiedades dependientes.
v Añadir cláusula NOLOGGING a la acción de volver a crear el índice
El valor predeterminado es Falso. Establezca Verdadero como valor para añadir
una cláusula NOLOGGING.

28 Guía de conectividad para bases de datos Oracle


v Añadir cláusula COMPUTE STATISTICS a la acción de volver a crear el índice
El valor predeterminado es Falso. Establezca Verdadero como valor para añadir
una cláusula COMPUTE STATISTICS.

Mantenimiento hace que la partición de cada tabla se cargue secuencialmente.


Debido a la carga secuencial, el índice de tabla que existe antes de que se cargue la
tabla se mantiene una vez cargada la misma. La tabla debe contener un índice y el
índice de la tabla debe ser un índice con particionamiento de rango que se ha
particionado de acuerdo con los mismos valores de rango que se utilizaron para
particionar la tabla. Tenga en cuenta que, en este caso, secuencial significa secuencia
por partición, es decir, que el grado de paralelismo equivale al número de
particiones.

Mandato de apertura

Se trata de una propiedad opcional que sólo aparece para el método de grabación
de Carga. Utilícela para especificar que cualquier mandato, entre comillas simples,
debe ser analizado y ejecutado por parte de la base de datos Oracle en todos los
nodos de proceso antes de que la tabla de Oracle se abra. Si es necesario, puede
especificar un parámetro de trabajo.

Partición de Oracle

Se trata de una propiedad opcional que sólo aparece para el método de grabación
de Carga. Indica el nombre de la partición de tabla de Oracle 8 en la que se
grabarán los registros. La etapa asume que los datos proporcionados son para la
partición especificada.

La tabla tiene NCHAR/ NVARCHAR

Esta opción se aplica a las modalidades de grabación de Crear o Sustituir.


Establezca Verdadero como valor si la tabla que se está grabando contiene
caracteres NCHAR y NVARCHARS. Las columnas correctas se crearán en la tabla
de destino.

Separador Particionamiento
El separador Particionamiento permite especificar detalles sobre cómo se
particionan o recopilan los datos de entrada antes de grabarse en la base de datos
Oracle. También permite especificar que los datos deben ordenarse antes de
grabarse.

De forma predeterminada, la etapa particiona en modalidad Automática. Esta


modalidad trata de encontrar el mejor método de particionamiento según la
modalidad de ejecución de la etapa actual y de la anterior y dependiendo de la
cantidad de nodos que se especifiquen en el archivo de configuración.

Si la etapa Oracle Enterprise funciona en modalidad secuencial, primero recopilará


los datos antes de grabarlos en el archivo utilizando el método de recopilación
Automática.

El separador Particionamiento permite alterar temporalmente este comportamiento


predeterminado. La operación exacta para este separador depende de lo siguiente:
v Si se ha establecido que la etapa Oracle Enterprise se ejecute en modalidad
paralela o secuencial.

Capítulo 3. Etapa Oracle Enterprise 29


v Si se ha establecido que la etapa anterior del trabajo se ejecute en modalidad
paralela o secuencial.

Si se ha establecido que la etapa Oracle Enterprise se ejecute en paralelo, puede


establecer un método de particionamiento seleccionando en la lista desplegable
Tipo de partición. Esto alterará temporalmente todos los particionamientos
actuales.

Si se ha establecido que la etapa Oracle Enterprise se ejecute en modalidad


secuencial pero la etapa anterior se está ejecutando en paralelo, puede establecer
un método de colección mediante la lista desplegable Tipo de recopilador.

Están disponibles los siguientes métodos de particionamiento:


v (Automático). IBM InfoSphere DataStage intenta calcular el método de
particionamiento mejor según las modalidades de ejecución de las etapas actual
y precedente, además de cuántos nodos se han especificado en el archivo de
configuración. Este es el método de particionamiento predeterminado para la
etapa Oracle Enterprise.
v Entero. Cada archivo grabado recibe el conjunto de datos entero.
v Hash. Los registros se distribuyen mediante hash en particiones según el valor
de una o varias columnas clave seleccionadas en la lista Disponibles.
v Módulo. Los registros se particionan utilizando una función de módulo sobre la
columna clave seleccionada en la lista Disponibles. Se utiliza habitualmente
para particionar sobre campos de etiqueta.
v Aleatorio. Los registros se particionan de modo aleatorio, según la salida de un
generador de números aleatorios.
v Iteración cíclica. Los registros se particionan utilizando una iteración cíclica
cuando entran en la etapa.
v Las mismas. Preserva el particionamiento que ya establecido. Este es el valor
predeterminado para las etapas Oracle Enterprise.
v DB2. Replica el método de particionamiento de la tabla de IBM DB2
especificada. Requiere el establecimiento de propiedades extra. Acceda a dichas
propiedades pulsando el botón de propiedades.
v Rango. Divide un conjunto de datos en particiones de un tamaño
aproximadamente equivalente basándose en una o varias claves de
particionamiento. El particionamiento de rango es a menudo un paso previo al
proceso para realizar una ordenación total de un conjunto de datos. Requiere el
establecimiento de propiedades extra. Acceda a dichas propiedades pulsando el
botón de propiedades.

Están disponibles los siguientes métodos de colección:


v (Automático). Este es el método de colección predeterminado para las etapas
Oracle Enterprise. Normalmente, cuando se utiliza la modalidad Automática,
InfoSphere DataStage leerá rápidamente cualquier fila de cualquier partición de
entrada cuando esté disponible.
v Ordenado. Lee todos los registros de la primera partición y, a continuación,
todos los registros de la segunda partición, y así sucesivamente.
v Iteración cíclica. Lee un registro de la primera partición de entrada y, a
continuación, uno de la segunda partición, y así sucesivamente. Después de
llegar a la última partición, el operador vuelve a empezar.
v Fusión de listas ordenadas. Lee registros en un orden basado en una o varias
columnas del registro. Requiere la selección de una columna clave de colección
de la lista Disponibles.

30 Guía de conectividad para bases de datos Oracle


El separador Particionamiento también permite especificar que los datos que
llegan en el enlace de entrada se deben ordenar antes de grabarlos en el(los)
archivo(s). La ordenación siempre se efectúa dentro de particiones de datos. Si la
etapa particiona datos entrantes, la ordenación se efectúa después del
particionamiento. Si la etapa está recopilando datos, la ordenación se produce antes
de la colección. La disponibilidad de la ordenación depende del método de
particionamiento o colección elegido (no está disponible con los métodos
Automáticos predeterminados).

Seleccione los recuadros de selección de la siguiente manera:


v Realizar ordenación. Seleccione esta opción para especificar que los datos que
llegan al enlace se deben ordenar. Seleccione la columna o columnas que se
deben ordenar de la lista Disponible.
v Estable. Seleccione esta opción si desea conservar los conjuntos de datos
ordenados anteriormente. Éste es el valor predeterminado.
v Exclusiva. Seleccione esta opción para especificar que, si varios registros tienen
valores de claves de ordenación idénticos, sólo se retendrá un registro. Si
también se ha establecido la ordenación estable, se retendrá el primer registro.

Si está habilitado el soporte multilingüístico, un botón adicional permite abrir un


recuadro de diálogo que permite seleccionar un entorno local para especificar el
convenio de clasificación para la ordenación.

También puede especificar la dirección de la ordenación, la sensibilidad a


mayúsculas y minúsculas, si se ordena como ASCII o EBCDIC, y también si las
columnas nulas aparecerán las primeras o las últimas para cada columna. Si está
utilizando un método de particionamiento con claves, también puede especificar si
la columna se utiliza como una clave para ordenar, para particionar o para ambas
cosas. Seleccione la columna en la lista Seleccionadas y pulse con el botón derecho
del ratón para que aparezca el menú emergente.

Página Salidas
La página Salidas permite especificar detalles sobre cómo lee datos la etapa Oracle
Enterprise de una base de datos Oracle. La etapa Oracle Enterprise sólo puede
tener un enlace de salida. Alternativamente, puede tener un enlace de salida de
referencia, utilizado por la etapa Lookup cuando hace referencia a una tabla de
búsqueda de Oracle. También puede tener un enlace de rechazo hacia el que se
dirigen los registros rechazados (utilizado junto con un enlace de entrada). La lista
desplegable Nombre de salida permite elegir si desea consultar los detalles del
enlace de salida principal o del enlace de rechazo.

El separador General permite especificar una descripción opcional del enlace de


salida. El separador Propiedades permite especificar detalles sobre lo que hace
exactamente el enlace. El separador Columnas especifica las definiciones de
columna de los datos. El separador Avanzada permite cambiar los valores de
almacenamiento intermedio predeterminados para el enlace de salida.

En las secciones siguientes encontrará detalles cobre las propiedades de la etapa


Oracle Enterprise. Consulte el manual IBM InfoSphere DataStage and QualityStage
Parallel Job Developer's Guide para obtener una descripción general de otros
separadores.

Capítulo 3. Etapa Oracle Enterprise 31


Separador Propiedades del enlace de salida
El separador Propiedades permite especificar propiedades para el enlace de salida.
Éstas determinan el modo en que se leen los datos entrantes y desde qué tabla.
Algunas de las propiedades son obligatorias, aunque muchas de ellas tienen
valores predeterminados. Las propiedades sin valores predeterminados aparecen
en color de aviso (rojo de forma predeterminada) y se vuelven negras cuando se
proporciona un valor para las mismas.

El botón Crear SQL permite abrir instantáneamente el Creador de SQL para


ayudarle a construir una consulta SQL para leer datos. Consulte IBM InfoSphere
DataStage and QualityStage Designer Client Guide para obtener información sobre su
uso.

La tabla siguiente constituye una lista de consulta rápida de las propiedades y sus
atributos. A continuación se proporciona una descripción más detallada de cada
propiedad.
Tabla 10. Propiedades y valores del enlace de salida
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Origen/Tipo de Normal/ Normal S (si la salida es N/D
búsqueda Dispersa un enlace de
referencia
conectado a la
etapa Lookup)
Origen/Método SQL generado SQL generado S N/D
de lectura automáticamente por el Creador
/Tabla/SQL de SQL
generado por el
Creador de SQL
/SQL definido
por el usuario
Origen/Tabla serie N/D N N/D
Origen/Dónde serie N/D N Tabla
(Where)
Origen/Lista de serie N/D N Tabla
selección
Origen/Consulta serie N/D N N/D
SQL
Origen/Tabla de serie N/D N N/D
partición
Conexión/ serie N/D S N/D
Opciones de BD
Conexión/ Generar Generar S N/D
Modalidad de automáticamente/ automáticamente
opciones de DB Definido por el
usuario
Conexión/ serie N/D S (si Modalidad Modalidad de
Usuario de opciones de opciones de DB
DB = Generar
automáticamente)

32 Guía de conectividad para bases de datos Oracle


Tabla 10. Propiedades y valores del enlace de salida (continuación)
Categoría/ Valor
Propiedad Valores predeterminado ¿Necesario? Depende de
Conexión/ serie N/D S (si Modalidad Modalidad de
Contraseña de opciones de opciones de DB
DB = Generar
automáticamente)
Conexión/ serie N/D N Modalidad de
Adicional opciones de DB
Opciones de
conexión
Conexión/ serie N/D N N/D
Servidor remoto
Opciones/ serie N/D N N/D
Mandato de
cierre
Opciones/ serie N/D N N/D
Mandato de
apertura
Opciones/La Verdadero/Falso Falso N N/D
tabla tiene
NCHAR/
NVARCHAR

Categoría Origen
Son las propiedades disponibles en la categoría Origen.

Tipo de búsqueda

Cuando la etapa Oracle Enterprise está conectada a una etapa Lookup mediante un
enlace de referencia, esta propiedad especifica si la etapa Oracle Enterprise
proporcionará datos para la búsqueda en memoria (Tipo de búsqueda = Normal) o
si la búsqueda accederá directamente a la base de datos (Tipo de búsqueda =
Dispersa).

Método de lectura

Esta propiedad especifica si se está especificando una tabla o una consulta al leer
la base de datos Oracle y cómo se está generando la consulta.
v Seleccione el método Tabla para utilizar la propiedad Tabla para especificar la
lectura. La lectura se realizará en paralelo.
v Seleccione SQL generado automáticamente para que IBM InfoSphere DataStage
genere automáticamente una consulta SQL basada en las columnas definidas y la
tabla especificada en la propiedad Tabla.
v Seleccione SQL definido por el usuario para definir su propia consulta. De forma
predeterminada, el SQL definido por el usuario o generado automáticamente
leerá secuencialmente en un nodo. Los métodos de lectura SQL generado
automáticamente y SQL definido por el usuario funcionan secuencialmente en
un solo nodo. Se puede hacer que la lectura de SQL definido por el usuario
opere en paralelo si especifica la propiedad Tabla de partición.

Capítulo 3. Etapa Oracle Enterprise 33


v Seleccione SQL generado por el Creador de SQL para abrir el Creador de SQL y
definir la consulta utilizando su útil interfaz. (Consulte IBM InfoSphere DataStage
and QualityStage Designer Client Guide.)

De forma predeterminada, los Métodos de lectura de SQL generado por el Creador


de SQL y SQL generado automáticamente operan secuencialmente sobre un solo
nodo. Se puede hacer que la lectura de SQL definido por el usuario opere en
paralelo si especifica la propiedad Tabla de partición.

Consulta SQL

Permite especificar opcionalmente una consulta SQL para leer una tabla. La
consulta especifica la tabla y el proceso que desea realizar en la tabla mientras la
etapa la lea. Esta sentencia puede contener uniones, vistas, enlaces de base de
datos, sinónimos y otras entidades.

Tabla

Especifica el nombre de la tabla de Oracle. La tabla debe existir y debe tener


privilegios SELECT sobre la tabla. Si su nombre de usuario de Oracle no coincide
con el propietario de la tabla especificada puede añadirle como prefijo un
propietario de tabla de la siguiente forma:
propietario_tabla.nombre_tabla

La tabla tiene propiedades dependientes:


v Where
Sólo enlaces de secuencia. Especifica una cláusula WHERE de la sentencia
SELECT para especificar las filas de la tabla que hay que incluir o excluir de la
operación de lectura. Si no proporciona una cláusula WHERE, se leerán todas las
filas.
v Lista de selección
Opcionalmente especifica una lista de selección de SQL, incluida entre comillas,
que puede utilizarse para determinar qué columnas se leen. Debe especificar las
columnas en la lista en el mismo orden en que se están definidas en el esquema
de registros de la tabla de entrada.

Tabla de partición

Especifica la ejecución de SELECT en paralelo en los nodos de proceso que


contienen una partición derivada de la tabla en cuestión. Si no se especifica, la
etapa ejecutará la consulta secuencialmente en un solo nodo.

Categoría Conexión
Son las propiedades disponibles en la categoría Conexión.

Opciones de BD

Especifique un nombre de usuario y una contraseña para conectarse a Oracle de


esta forma:
<user=< usuario >,password=< contraseña >[,arraysize=< núm_registros >]

IBM InfoSphere DataStage no cifra la contraseña cuando se utiliza esta opción.


Arraysize sólo se aplica a los enlaces de secuencia. El valor predeterminado para
arraysize es de 1000.

34 Guía de conectividad para bases de datos Oracle


Modalidad de opciones de DB

Si selecciona Generar automáticamente para esta propiedad, InfoSphere DataStage


creará la serie de opciones de BD. Si selecciona Definido por el usuario, tendrá que
editar la propiedad Opciones de BD Usted mismo. Si se selecciona Generar
automáticamente, hay dos propiedades dependientes:
v Usuario
El nombre de usuario que se debe utilizar en la serie Opciones de BD generada
automáticamente.
v Contraseña
La contraseña que se debe utilizar en la serie Opciones de BD generada
automáticamente. InfoSphere DataStage cifra la contraseña

Nota: Si tiene una contraseña con caracteres especiales, entrecomille la


contraseña. Por ejemplo: "contrase#a".
v Opciones de conexión adicionales
Permite opcionalmente especificar opciones adicionales para añadirlas a la serie
de conexión de Oracle.

Servidor remoto

Esta propiedad es opcional. Permite especificar un nombre de servidor remoto.

Categoría Opciones
Son las propiedades disponibles en la categoría Opciones.

Mandato de cierre

Se trata de una propiedad opcional que sólo aparece para enlaces de secuencia.
Utilícela para especificar cualquier mandato que la base de datos Oracle debe
analizar y ejecutar en todos los nodos de proceso después de que la etapa termine
de procesar la tabla de Oracle. Si es necesario, puede especificar un parámetro de
trabajo.

Mandato de apertura

Se trata de una propiedad opcional que sólo aparece para enlaces de secuencia.
Utilícela para especificar cualquier mandato que la base de datos Oracle debe
analizar y ejecutar en todos los nodos de proceso antes de que se abra la tabla de
Oracle. Puede especificar un parámetro de trabajo si es preciso.

La tabla tiene NCHAR/ NVARCHAR

Establezca Verdadero como valor si la tabla desde la que se está leyendo contiene
caracteres NCHAR y NVARCHARS.

Capítulo 3. Etapa Oracle Enterprise 35


36 Guía de conectividad para bases de datos Oracle
Capítulo 4. Etapas Oracle OCI
Oracle OCI permite preparar y cargar secuencias de datos tabulares de forma
rápida y eficiente desde cualquier etapa IBM InfoSphere DataStage (por ejemplo, la
etapa ODBC o la etapa Sequential File) en tablas de la base de datos Oracle de
destino o desde ellas. El cliente Oracle en Microsoft® Windows® o UNIX® utiliza
SQL*Net para acceder al servidor Oracle en Windows o UNIX.

Cada etapa Oracle OCI es una etapa pasiva que puede tener cualquier número de
enlaces de entrada, salida y salida de referencia:
v Los enlaces de entrada especifican los datos que está grabando, que es una
secuencia de filas que se debe cargar en una base de datos Oracle. Puede
especificar los datos en un enlace de entrada utilizando una sentencia SQL
construida por InfoSphere DataStage o una sentencia SQL definida por el
usuario.
v Los enlaces de salida especifican los datos que está extrayendo, que es una
secuencia de filas que se debe leer desde una base de datos Oracle. También
puede especificar los datos en un enlace de salida utilizando una sentencia SQL
construida por InfoSphere DataStage o una sentencia definida por el usuario.
v Cada enlace de salida de referencia representa una fila que se lee desde una base
de datos Oracle (es decir, lee el registro utilizando el campo clave de la cláusula
WHERE de la sentencia SQL SELECT).

Oracle ofrece una interfaz de llamada patentada para programadores de C y C++


que permite manipular los datos de una base de datos Oracle. La etapa Oracle Call
Interface (OCI) puede conectar y procesar sentencias SQL en el entorno Oracle
nativo sin necesidad de ningún controlador o gestor de controladores externo. Para
utilizar la etapa Oracle OCI, sólo necesita instalar el cliente Oracle, que utiliza
SQL*Net para acceder al servidor Oracle.

Oracle OCI funciona con servidores Oracle, siempre que instale el software de
Oracle adecuado. Para obtener información sobre las excepciones a esta norma,
consulte la documentación de Oracle del release correspondiente.

Con Oracle OCI puede:


v Generar una sentencia SQL.
v Utilizar un nombre de archivo para dar cabida a la sentencia SQL.
v Borrar una tabla antes de la carga utilizando la sentencia TRUNCATE. (Borrar
tabla)
v Seleccionar con qué frecuencia se deben confirmar filas en la base de datos.
(Tamaño de transacción)
v Entrar varias filas de datos en una llamada a la base de datos. (Tamaño de
matriz)
v Leer varias filas de datos en una llamada desde la base de datos. (Tamaño de
matriz)
v Especificar niveles de aislamiento de transacción para el control de concurrencia
y el ajuste de rendimiento de la transacción. (Aislamiento de la transacción)
v Especificar criterios que los datos deben cumplir antes de su selección. (Cláusula
WHERE)
v Especificar criterios para ordenar, resumir y agregar datos. (Otras cláusulas)

© Copyright IBM Corp. 2008, 2010 37


v Especificar el comportamiento de marcas de parámetros en sentencias SQL.

Oracle OCI depende de la biblioteca compartida libclntsh, que se crea durante la


instalación del software del cliente de Oracle. Debe incluir la ubicación que
contiene esta biblioteca compartida en la vía de acceso de búsqueda de la
biblioteca compartida para que los trabajos de InfoSphere DataStage se ejecuten
satisfactoriamente utilizando esta etapa.

Funcionalidad de las etapas Oracle OCI


Oracle OCI ofrece la funcionalidad y las ventajas siguientes:
v Soporte para la agrupación de transacciones para controlar un grupo de enlaces
de entrada desde una etapa Transformer. Esto permite grabar un conjunto de
datos en una base de datos en una transacción. Oracle OCI abre una sesión de
base de datos por grupo de transacciones.
v Soporte para el manejo de filas de rechazo. Las variables de rechazo de enlace
notifican a la etapa Transformer el código de error de DBMS (sistema de gestión
de bases de datos) de Oracle cuando se produce un error en la etapa Oracle OCI
para acciones de inserción, actualización y otras, para controlar la ejecución de
los trabajos. El formato del error es DBMS.CODE=ORA-xxxxx.
v Soporte para funcionalidad de crear y descartar tablas antes de grabar en una
tabla.
v Soporte para sentencias SQL anteriores y posteriores para ejecutar sentencias
SQL definidas por el usuario antes o después de que la etapa grabe o lea en una
base de datos.
v Soporte de enlaces de salida de referencia, entrada de secuencia y salida de
frecuencia.
v Posibilidad de utilizar la celda Derivación para especificar nombres de columna
calificados al completo para construir una sentencia SQL SELECT para enlaces
de salida y referencia.

Nota: Cuando se selecciona Habilitar nombre de tabla/columna que distinga


entre mayúsculas y minúsculas, es responsabilidad del usuario utilizar comillas
para el nombre de propietario/tabla.columna de la celda Derivación con la
finalidad de preservar las letras en minúscula.
v Ventajas de rendimiento y escalabilidad utilizando Oracle OCI en lugar de la
etapa ODBC para acceder a tablas de Oracle.
v Captación de filas de conjunto de resultados de sentencias SELECT al ejecutar
una consulta. Esto reduce la cantidad de viajes de ida y vuelta del servidor y
mejora el rendimiento.
v Reducción del número de viajes de ida y vuelta de la red (se procesa más en el
cliente).
v Soporte de nuevas interfaces y estructuras de datos transparentes.
v Eliminación de viajes de ida y vuelta del cursor de apertura y cierre.
v Manejo de errores mejorado.
v Uso de Oracle OCI como complemento de los trabajos actuales que ya utilizan la
etapa ODBC, en lugar de hacerlo como sustituto de la etapa ODBC.
v Importación de definiciones de tabla. Soporte de un nombre de archivo para dar
cabida a la sentencia SQL.
v Soporte para soporte multilingüístico.
v Soporte para la importación de metadatos de clave foránea.
v Soporte para el comportamiento de marcas de parámetro para sentencias SQL.

38 Guía de conectividad para bases de datos Oracle


La siguiente funcionalidad no está soportada:
v Carga de enlaces de entrada de secuencia en masa. Uso de la etapa Oracle OCI
Load para cargar datos masivamente en bases de datos Oracle.
v Procedimientos almacenados.
v Soporte de tipos de datos Oracle tales como BLOB, FILE, LOB, LONG, LONG
RAW, MSLABEL, OBJECT, RAW, REF, ROWID o un tipo de datos con nombre.
v Ejecución en el lienzo paralelo bajo Windows o UNIX.

Requisitos de configuración de las etapas Oracle OCI


Oracle OCI necesita la siguiente configuración:
v El software del cliente Oracle en el servidor IBM InfoSphere DataStage, que
necesita la siguiente configuración:
– Cliente Oracle 10g (tiempo de ejecución)

Nota: AIX 5.1 necesita la versión 9.2 o posterior del software del cliente de
Oracle.
v Configuración de SQL*Net utilizando un programa de configuración, como por
ejemplo SQL*Net Easy Configuration, para configurar y añadir alias de base de
datos.
v Las siguientes variables de entorno en el servidor en UNIX:
– ORACLE_HOME
– TWO_TASK
– ORACLE_SID
– LD_LIBRARY_PATH

El nombre de la variable de entorno LD_LIBRARY_PATH difiere dependiendo de


la plataforma.
Tabla 11. Nombres específicos de la plataforma para LD_LIBRARY_PATH
NOMBRE DE LA VARIABLE DE
PLATAFORMA ENTORNO
AIX LIBPATH
HP_UX SHLIB_PATH
LINUX o Solaris LD_LIBRARY_PATH

Para la variable de entorno SHLIB_PATH, se debe hacer referencia a las entradas


de la biblioteca InfoSphere DataStage antes de cualquier entrada de biblioteca
ODBC en tiempo de ejecución.

La conexión Oracle
Cuando utiliza la interfaz gráfica de usuario para editar una etapa OCI, se abre el
recuadro de diálogo Etapa ORAOCI9.

Este recuadro de diálogo puede tener hasta tres páginas (en función de si existen
entradas o salidas de la etapa):
v Etapa. Esta página muestra el nombre de la etapa que está editando. El
separador General define la información sobre el origen de base de datos Oracle

Capítulo 4. Etapas Oracle OCI 39


y el inicio de sesión para conectarse a una base de datos Oracle. Para obtener
detalles, consulte la siguiente sección, "Conexión con una base de datos Oracle"
El separador Soporte multilingüístico define una correlación de juego de
caracteres que se debe utilizar con la etapa. (El separador Soporte
multilingüístico sólo aparece si se ha instalado el soporte multilingüístico). Para
obtener detalles, consulte "Definición de la correlación de juego de caracteres"
v Entrada. Esta página sólo se muestra si dispone de un enlace de entrada de esta
etapa. Especifica la tabla SQL que se debe utilizar y las definiciones de columna
asociadas para cada enlace de entrada de datos. Esta página también especifica
el tipo de acción de actualización y la información del nivel de aislamiento de la
transacción para el control de concurrencia y el ajuste de rendimiento. También
contiene la sentencia SQL utilizada para grabar los datos y permite habilitar la
distinción entre mayúsculas y minúsculas para las sentencias SQL.
v Salida. Esta página sólo se muestra si dispone de un enlace de salida de esta
etapa. Especifica las tablas SQL que se deben utilizar y las definiciones de
columna asociadas para cada enlace de salida de datos. Esta página también
especifica el tipo de consulta y la información del nivel de aislamiento de la
transacción para el control de concurrencia y el ajuste de rendimiento. También
contiene la sentencia SQL SELECT utilizada para extraer los datos y permite
habilitar la distinción entre mayúsculas y minúsculas para las sentencias SQL.

Definición de la conexión Oracle


Para editar una etapa Oracle OCI desde la ventana Etapa ORAOCI9:
1. Defina la conexión (consulte la sección siguiente).
2. Opcional. Defina una correlación de juego de caracteres.
3. Defina los datos de los enlaces de entrada.
4. Defina los datos de los enlaces de salida.

Conexión con una base de datos Oracle


Establezca los parámetros de conexión en el separador General de la página Etapa
de la interfaz gráfica de usuario. Para conectar con una base de datos Oracle:
1. Entre el nombre del alias de la base de datos Oracle a la que debe accederse en
el campo Nombre de origen de base de datos. (Se trata del nombre que ha
creado mediante el asistente de configuración de Oracle.) A menos que la base
de datos disponga de una cuenta de invitado, el ID de usuario debe ser un
usuario válido en la base de datos, tener un alias en la base de datos o ser un
administrador del sistema o un responsable de seguridad del sistema. No existe
ningún valor predeterminado.
2. Entre el nombre de usuario que debe utilizarse para la conexión con la base de
datos Oracle en el campo ID de usuario. Este usuario debe disponer de
privilegios suficientes para acceder a la base de datos y tablas de origen y de
destino especificadas. Este campo es necesario a menos que seleccione Utilizar
autenticación de nivel de sistema operativo. No existe ningún valor
predeterminado.
3. Entre la contraseña que está asociada con el nombre de usuario especificado
que debe utilizarse en el campo Contraseña. Este campo es necesario a menos
que seleccione Utilizar autenticación de nivel de sistema operativo. No existe
ningún valor predeterminado.
4. Seleccione un nivel de aislamiento de transacción apropiado para utilizarlo en
la lista Aislamiento de la transacción del separador General de las páginas

40 Guía de conectividad para bases de datos Oracle


Entrada o Salida (consulte el separador General en "Definición de datos de
entrada" o "Definición de datos de salida" ). Este nivel proporciona la
coherencia y el control de concurrencia necesarios entre las transacciones del
trabajo y otras transacciones para lograr un rendimiento óptimo. Oracle no
evita que otras transacciones modifiquen los datos leídos por una consulta, por
lo que estos datos podrían ser modificados por otras transacciones entre dos
ejecuciones de la consulta. De este modo, una transacción que ejecuta una
consulta indicada dos veces puede experimentar tanto las lecturas no repetibles
como las lecturas fantasma. Utilice uno de los siguientes niveles de aislamiento
de transacción:
Lectura confirmada. Fija bloqueos exclusivos para los datos modificados y
bloqueos que se pueden compartir para todos los demás datos. Lectura
confirmada es el nivel ISO predeterminado para todas las transacciones.
Serializable. Fija bloqueos exclusivos para los datos modificados y bloqueos
que se pueden compartir para todos los demás datos. Las transacciones
serializables sólo ven los cambios que se confirmaron cuando empezó la
transacción
Para obtener más información sobre la utilización de estos niveles, consulte la
documentación de Oracle.
5. Entre una descripción opcional de la etapa Oracle OCI en el campo
Descripción.
6. Seleccione Utilizar autenticación del nivel de sistema operativo para iniciar la
sesión automáticamente mediante el nombre de usuario y la contraseña del
sistema operativo. El valor predeterminado se borra. Para obtener más detalles
sobre la información de inicio de sesión de Oracle, consulte la documentación
de Oracle.

Definición de la correlación de juego de caracteres


Puede definir una correlación de juego de caracteres para una etapa. Realice esta
tarea desde el separador Soporte multilingüístico en la página Etapa. El separador
Soporte multilingüístico sólo aparece si se ha instalado el soporte multilingüístico.

Especifique la información mediante los siguientes campos:


v Nombre de correlación que debe utilizarse con la etapa. Define la correlación
de juego de caracteres predeterminada para el proyecto o el trabajo. Puede
modificar la correlación seleccionando un nombre de correlación de la lista.
v Mostrar todas las correlaciones. Lista todas las correlaciones que se envían con
IBM InfoSphere DataStage.
v Sólo correlaciones cargadas. Muestra una lista de las correlaciones que están
cargadas en ese momento.
v Utilizar parámetro de trabajo.... Especifica los valores de los parámetros para el
trabajo. Utilice el formato #Parám#, donde Parám es el nombre del parámetro de
trabajo. La serie #Parám# se sustituye por el parámetro de trabajo cuando se
ejecuta el trabajo.

Conversión de un proyecto de Oracle 8 a Oracle 9 o 10


El programa de utilidad OCI8TO9.B permite migrar cualquier etapa Oracle OCI 8
de sus trabajos a una etapa Oracle OCI. Este programa de utilidad puede
ejecutarse en IBM InfoSphere DataStage release 6.0 y posteriores. El programa de
utilidad está ubicado en el directorio utilities/unsupported. Antes de empezar, cree

Capítulo 4. Etapas Oracle OCI 41


una copia de seguridad del proyecto que va a convertir. Asegúrese también de que
ningún otro usuario esté accediendo al proyecto en el momento de la conversión.

Utilice FTP en modalidad binaria para mover el programa de utilidad al servidor


InfoSphere DataStage y colocarlo en un directorio temporal. Copie el programa de
utilidad en el directorio DSU_BP.O de cada proyecto que desee convertir. Además,
en Unix deberá ejecutar
chmod 750 OCI8TO9.B

Inicie InfoSphere DataStage and QualityStage Administrator desde cualquier


estación de trabajo de InfoSphere DataStage Client. Seleccione el separador
Proyecto, resalte el proyecto que va a convertir y pulse Mandato. En el indicador
de solicitud Mandato, escriba
RUN DSU_BP OCI8TO9.B

Pulse Ejecutar. Se le solicitará que continúe o salga. Conteste 'S' o 'N' y pulse
Responder. Si continúa, la salida se detendrá de forma predeterminada al final de
la página; puede pulsar Siguiente tras cada pausa o borrar Pausar....

El programa de utilidad crea un informe de los trabajos que se han convertido en


el directorio &COMO& denominado OCI8TO9.CONV.

Definición de datos de entrada


Al grabar datos en una tabla en una base de datos Oracle, la etapa Oracle OCI
tiene un enlace de entrada. Las propiedades de este enlace y las definiciones de
columna de los datos se definen en la página Entrada del recuadro de diálogo
Etapa ORAOCI de la interfaz gráfica de usuario.

Acerca de la página Entrada


La página Entrada contiene el campo Nombre de entrada; los separadores
General, Opciones, Columnas, SQL y Manejo de transacciones y los botones
Columnas... y Ver datos...:
v Seleccione el nombre del enlace de entrada que desee editar desde la lista
Nombre de entrada. Esta lista muestra todos los enlaces de entrada con la etapa
Oracle OCI.
v Pulse Columnas... para visualizar una breve lista de las columnas asociadas con
el enlace de entrada. Puede seguir visualizando la lista a medida que va
entrando metadatos detallados en el separador Columnas.
v Pulse Ver datos... para invocar el Navegador de datos. Permite ver los datos
asociados con el enlace de entrada en la base de datos.

Separador General de la página Entrada de la etapa Oracle OCI


Utilice este separador para indicar cómo se crean las sentencias SQL a partir de un
enlace de Entrada en la etapa Oracle OCI.

Este separador se visualiza de forma predeterminada. Contiene los campos


siguientes:
v Tipo de consulta. Determina cómo se crean las sentencias SQL. Las opciones son
las siguientes
– Utilizar la herramienta Creador de SQL. Hace que aparezcan el botón
Creador de SQL y la propiedad Acción de actualización. Este es el valor
predeterminado para los trabajos nuevos.

42 Guía de conectividad para bases de datos Oracle


– Generar acción de actualización a partir de los separadores Opciones y
Columnas. Hace que se muestre la propiedad Acción de actualización.
Utiliza valores de los separadores Opciones y Columnas y de Acción de
actualización para generar el SQL.
– Entrar sentencia SQL personalizada. Graba los datos mediante una sentencia
SQL definida por el usuario que altera temporalmente la sentencia SQL
predeterminada generada por la etapa. Si selecciona esta opción, debe entrar
la sentencia SQL en el separador SQL.
– Cargar SQL de un archivo en tiempo de ejecución. Utiliza el contenido del
archivo especificado para grabar los datos.
v Creador de SQL. Hace que el Creador de SQL se abra.
v Acción de actualización. Especifica las sentencias SQL que se utilizan para
actualizar la tabla de destino. Algunas acciones de actualización necesitan
columnas clave para actualizar o suprimir filas. No existe ningún valor
predeterminado. Seleccione la opción deseada de la lista:
– Borrar tabla y, a continuación, insertar filas. Suprime el contenido de la tabla
y añade las filas nuevas, con un rendimiento inferior debido al registro de la
transacción. Al pulsar Botón SQL, se abrirá la página Insertar.
– Truncar tabla y, a continuación, insertar filas. . Trunca la tabla sin ningún
registro de la transacción y con un rendimiento superior. Al pulsar Botón
SQL, se abrirá la página Insertar.
– Insertar filas sin borrar. Inserta las filas nuevas en la tabla.
– Suprimir sólo las filas existentes. Suprime las filas existentes en la tabla de
destino que presentan claves idénticas en los archivos de origen. Al pulsar
Botón SQL, se abrirá la página Suprimir.
– Sustituir totalmente las filas existentes. Suprime las filas existentes y, a
continuación, añade las filas nuevas a la tabla. Al pulsar Botón SQL, se abrirá
la página Suprimir. No obstante, debe completar también la página Insertar
para realizar la sustitución.
– Actualizar sólo las filas existentes. Actualiza las filas de datos existentes. Las
filas de datos que no existan en la tabla se ignorarán. Al pulsar Botón SQL,
se abrirá la página Actualizar.
– Actualizar las filas existentes o insertar filas nuevas. Actualiza las filas de
datos existentes antes de añadir filas nuevas. Resulta más rápido actualizar
primero en el caso de un gran número de registros. Al pulsar Botón SQL, se
abrirá la página Actualizar. No obstante, debe completar también la página
Insertar para realizar la sustitución.
– Insertar filas nuevas o actualizar las filas existentes. Inserta las filas nuevas
antes de actualizar las filas existentes. Resulta más rápido insertar primero en
el caso de pocos registros. Al pulsar Botón SQL, se abrirá la página Insertar.
No obstante, debe completar también la página Actualizar para realizar la
actualización.
v Descripción. Contiene una descripción opcional del enlace de entrada.

Separador Opciones
Utilice el separador Opciones para crear o descartar tablas y para especificar varias
opciones del enlace de Oracle.
v Nombre de tabla. Asigna un nombre a la tabla de destino de Oracle en la que se
graban los datos. La tabla debe existir o debe crearse seleccionando Generar
DDL desde la lista Acción de crear tabla. En función de las operaciones
realizadas, debe disponer de los permisos o privilegios adecuados para la tabla.
No existe ningún valor predeterminado.

Capítulo 4. Etapas Oracle OCI 43


Pulse ... (botón Examinar) para examinar el repositorio a fin de seleccionar la
tabla.
v Acción de crear tabla. Crea la tabla de destino en la base de datos especificada
si se ha seleccionado Generar DDL. Utiliza las definiciones de columna en el
separador Columnas y el nombre de tabla y las propiedades TABLESPACE y
STORAGE para la tabla de destino. La sentencia de creación de tabla generada
incluye las palabras clave TABLESPACE y STORAGE, que indican la ubicación
en la que se crea la tabla y la expresión de almacenamiento para la cláusula de
almacenamiento de Oracle. Debe disponer de privilegios de CREATE TABLE en
su esquema.
También puede especificar su propia sentencia SQL CREATE TABLE. Debe
entrar la cláusula de almacenamiento en formato de Oracle. (Utilice el separador
DDL definido por el usuario del separador SQL para una sentencia compleja.)
Seleccione una de las opciones siguientes para crear la tabla:
– No crear tabla de destino. Especifica que la tabla de destino no está creada y
que el campo Acción de descartar tabla y el botón Propiedades de creación de
tabla ubicados a la derecha del diálogo están inhabilitados.
– Generar DDL. Especifica que la etapa genera la sentencia CREATE TABLE
mediante información del nombre de tabla, la cuadrícula de definiciones de
columna y los valores del diálogo Propiedades de creación de tabla.
– DDL definido por el usuario. Especifica que debe entrar la sentencia
CREATE TABLE adecuada.
Pulse el botón para abrir el diálogo Propiedades de creación de tabla, a fin de
visualizar el espacio de tablas y los valores de la expresión de
almacenamiento para generar el DDL.
v Acción de descartar tabla. Descarta la tabla de destino antes de que sea creada
por la etapa si se ha seleccionado Generar DDL. Este campo se inhabilita si
decide no crear la tabla de destino. La lista muestra los mismos elementos que la
lista Acción de crear tabla, con la excepción de que se aplican en la sentencia
DROP TABLE. Debe disponer de privilegios de DROP TABLE para su esquema.
v Tamaño de la matriz. Especifica el número de filas que se deben transferir en
una llamada entre IBM InfoSphere DataStage y Oracle antes de que se graben.
Entre un número entero positivo para indicar con qué frecuencia Oracle realiza
grabaciones en la base de datos. El valor predeterminado es 1, es decir, que cada
fila se graba en una sentencia individual.
Los números más elevados utilizan más memoria del cliente para almacenar las
filas en memoria caché. De esta forma se minimizan las idas y vueltas del
servidor y se maximiza el rendimiento gracias a la ejecución de menos
sentencias. Si este número es demasiado elevado, el cliente podría quedarse sin
memoria.
El tamaño de la matriz influye en la forma en que InfoSphere DataStage maneja
las filas de rechazadas.
v Tamaño de transacción. Este campo existe con fines de compatibilidad con
versiones anteriores pero se ignora en la versión 3.0 y posterior de esta etapa. El
tamaño de transacción para nuevos trabajos se trata en Filas por transacción, en
el separador Manejo de transacciones.
v Aislamiento de transacción. Proporciona el control de concurrencia necesario
entre las transacciones del trabajo y otras transacciones. Utilice uno de los
siguientes niveles de aislamiento de transacción:
– Lectura confirmada. Fija bloqueos exclusivos para los datos modificados y
bloqueos que se pueden compartir para todos los demás datos. Cada consulta
ejecutada por una transacción sólo visualiza los datos que se han confirmado

44 Guía de conectividad para bases de datos Oracle


antes del inicio de la consulta (no de la transacción). Las consultas de Oracle
nunca leen los datos erróneos (no confirmados). Éste es el valor
predeterminado.
– Serializable. Fija bloqueos exclusivos para los datos modificados y bloqueos
que se pueden compartir para todos los demás datos. Para obtener las
transacciones serializables, consulte sólo los cambios que se han confirmado
en la hora de inicio de la transacción.

Nota: Si Habilitar la agrupación de transacciones se selecciona en el


separador Manejo de transacciones, sólo se utilizará el valor Aislamiento de
la transacción del primer enlace para todo el grupo.
v Tratar mensaje de aviso como error muy grave. Determina el comportamiento
de la etapa si se detecta un error al grabar los datos en una tabla. Si se marca el
recuadro de selección, el mensaje de aviso se registrará como muy grave y el
trabajo terminará anormalmente. El formato del mensaje de error es:
ORA-xxxxx Mensaje de texto de error de Oracle y valor de fila
Si se desmarca el recuadro de selección (predeterminado), se registrarán tres
mensajes de aviso en el archivo de registro del Director de InfoSphere DataStage
y el trabajo continuará.El formato del mensaje de error es:
valor de la fila que ha provocado el error
ORA-xxxxx Mensaje de texto de error de Oracle
DBMS.CODE=ORA-xxxxx
El último mensaje de aviso se utiliza para la función Variables del enlace de
rechazo. Si desea utilizar la funcionalidad Variables del enlace de rechazo, debe
desmarcar el recuadro de selección.
v Habilitar nombre de tabla/columna que distingue entre mayúsculas y
minúsculas. Habilita la utilización de nombres de tabla y de columna que
distinguen entre mayúsculas y minúsculas. Seleccione la opción de delimitar los
nombres de tabla y de columna en las sentencias SQL entre comillas dobles (" ").
Está desmarcado de forma predeterminada.

Separador Columnas
En el separador Columnas, puede ver y modificar metadatos de columna para el
enlace de entrada. Utilice el botón Guardar para guardar cualquier modificación
que realice en los metadatos de la columna. Utilice el botón Cargar para cargar una
tabla de origen existente. Desde la ventana Definiciones de tabla, seleccione la tabla
adecuada que desee cargar y pulse Aceptar. Se mostrará el diálogo Seleccionar
columna. Para garantizar que la conversión de los tipos de datos es la adecuada,
desmarque el recuadro de selección Asegurarse de que todas las columnas Char
utilizan Unicode.

Separador SQL
El separador SQL contiene los separadores Consulta, Anterior, Posterior, DDL
generado y DDL definido por el usuario. Utilice estos separadores para visualizar
la sentencia SQL generada por la etapa y la sentencia SQL que puede entrar.
v Consulta. Este separador se visualiza de forma predeterminada. Es similar al
separador General, pero contiene las sentencias SQL que se utilizan para grabar
datos en Oracle. Se basa en los valores actuales de la etapa y en las propiedades
del enlace. No puede editar estas sentencias a menos que el Tipo de consulta se
establezca en Entrar sentencia SQL personalizada o Cargar SQL de un archivo
en tiempo de ejecución.
v Anterior. Contiene las sentencias SQL que se ejecutan antes de que la etapa
procese las filas de datos de trabajo. El parámetro del separador Anterior se

Capítulo 4. Etapas Oracle OCI 45


corresponde con las propiedades de cuadrícula SQL anterior y Continuar si el
SQL anterior falla. La propiedad Continuar si el SQL anterior falla se representa
mediante el recuadro de selección Tratar los errores como si no fueran muy
graves y la sentencia SQL se entra en un recuadro de edición que se puede
redimensionar. Los separadores Anterior y Posterior son parecidos.
Si el valor de la propiedad empieza por FILE=, el texto restante se interpretará
como un nombre de vía de acceso y el contenido del archivo proporcionará el
valor de la propiedad.
La sentencia SQL anterior es la primera sentencia SQL que debe ejecutarse. En
función de la selección, el trabajo podrá continuar o terminar después de que
falle la ejecución de una sentencia SQL anterior. No afecta al esquema de
agrupación de transacciones. La confirmación o retrotracción se realiza para cada
enlace.
Cada sentencia SQL se ejecuta como una transacción individual si el separador
de sentencias es un doble punto y coma ( ;; ). Todas las sentencias SQL se
ejecutan en una única transacción si el separador es un punto y coma ( ; ).
Tratar los errores como si no fueran muy graves. Si se selecciona esta opción, los
errores provocados por las sentencias SQL anteriores se registrarán como avisos
y el proceso continuará con el siguiente lote de mandatos. Cada ejecución
individual se trata como una transacción individual. Si se desmarca esta opción,
los errores se tratarán como muy graves para el trabajo y tendrán como
consecuencia una retrotracción de la transacción. La transacción sólo se
confirmará si todas las sentencias se ejecutan correctamente.
v Posterior. Contiene las sentencias SQL que se ejecutan después de que la etapa
procese las filas de datos de trabajo. Los parámetros de este separador se
corresponden con las propiedades de la cuadrícula SQL posterior y Continuar si
el SQL posterior falla. La propiedad Continuar si el SQL posterior falla se
representa mediante el recuadro de selección Tratar los errores como si no
fueran muy graves y la sentencia SQL se entra en un recuadro de edición que se
puede redimensionar. Los separadores Anterior y Posterior son parecidos.
Si el valor de la propiedad empieza por FILE=, el texto restante se interpretará
como un nombre de vía de acceso y el contenido del archivo proporcionará el
valor de la propiedad.
La sentencia SQL posterior es la última sentencia SQL que debe ejecutarse. En
función de la selección, el trabajo podrá continuar o terminar después de que
falle la ejecución de una sentencia SQL posterior. No afecta al esquema de
agrupación de transacciones. La confirmación o retrotracción se realiza para cada
enlace.
Cada sentencia SQL se ejecuta como una transacción individual si el separador
de sentencias es un doble punto y coma ( ;; ). Todas las sentencias SQL se
ejecutan en una única transacción si el separador es un punto y coma ( ; ).
El comportamiento de Tratar los errores como si no fueran muy graves es el
mismo que el de la sentencia anterior.
v DDL generado. Seleccione Generar DDL o DDL definido por el usuario desde
el campo Acción de crear tabla del separador Opciones para habilitar este
separador.
El campo Sentencia CREATE TABLE muestra la sentencia CREATE TABLE que
se genera a partir de las definiciones de metadatos de columna y de la
información proporcionada en el recuadro de diálogo Propiedades de creación
de tabla. Si selecciona una opción distinta de No descartar tabla de destino
desde la lista Acción de descartar tabla, el campo Sentencia DROP mostrará la
sentencia DROP TABLE generada para descartar la tabla de destino.

46 Guía de conectividad para bases de datos Oracle


v DDL definido por el usuario. Seleccione DDL definido por el usuario desde el
campo Acción de crear tabla o Acción de descartar tabla del separador
Opciones para habilitar este separador. La sentencia DDL generada se muestra
como un punto de inicio desde el cual puede definirse una sentencia CREATE
TABLE y una sentencia DROP TABLE. Si el valor de la propiedad empieza por
FILE=, el texto restante se interpretará como un nombre de vía de acceso y el
contenido del archivo proporcionará el valor de la propiedad.
El campo Sentencia DROP TABLE se inhabilitará si DDL definido por el
usuario no se selecciona desde el campo Acción de descartar tabla. Si se
selecciona No descartar el destino, el campo Sentencia DROP estará vacío en
los separadores DDL generado y DDL definido por el usuario.

Nota: Después de modificar la sentencia DDL definida por el usuario a partir de


la sentencia DDL generada original, las modificaciones realizadas en otras
propiedades relacionadas con la tabla no afectarán a la sentencia DDL definida
por el usuario. Si, por ejemplo, añade una columna nueva a la cuadrícula de
columnas después de modificar la sentencia DDL definida por el usuario, la
columna nueva aparecerá en la sentencia DDL generada pero no aparecerá en la
sentencia DDL definida por el usuario.

Separador Manejo de transacciones


Oracle OCI da soporte a la agrupación de transacciones, es decir, la agrupación de
enlaces de entrada que proceden de la etapa Transformer. De esta forma podrá
controlar el grupo de enlaces de entrada para el inicio, confirmación o retrotracción
en una transacción al grabar en un único origen de datos. Puede utilizar los
valores En caso de anomalía o Al saltar para especificar si la transacción se ha
confirmado.

Este separador permite visualizar las funciones de manejo de transacciones de la


etapa a medida que ésta realiza la grabación en el origen de datos. Puede
seleccionar un nivel de aislamiento.

Si dispone de un único enlace, el separador Manejo de transacciones contiene el


siguiente parámetro:
v Filas por transacción. Si desmarca Habilitar la agrupación de transacciones,
puede establecer que Filas por transacción especifique el número de filas
grabadas antes de que se confirmen los datos para la tabla. El valor
predeterminado es 0, es decir, que todas las filas se grabarán antes de que se
confirmen para la tabla.
Si está actualizando un trabajo existente que presenta un valor en el campo
Tamaño de transacción de la página tabulada General, dicho valor determinará
el número de filas por transacción, siempre que el campo Filas por transacción
contenga un valor de 0.
Si el campo Filas por transacción contiene un valor mayor que cero, dicho valor
determinará el número de filas por transacción y el valor del campo Tamaño de
transacción se ignorará.
Al crear un nuevo trabajo, utilice el campo Filas por transacción para establecer
el número de filas por transacción. No utilice el campo Tamaño de transacción.

Nota: En releases anteriores de Oracle OCI, si detenía manualmente un trabajo,


las transacciones pendientes se grababan en la base de datos. Las transacciones
pendientes en ese momento, es decir, las transacciones que no se han
confirmado, se retrotraen.

Capítulo 4. Etapas Oracle OCI 47


Si dispone de dos o más enlaces de una única etapa Transformer, el separador
Manejo de transacciones contendrá los siguientes parámetros:
v Habilitar la agrupación de transacciones. Si se selecciona, se visualizará la
cuadrícula con detalles del grupo de transacciones al que pertenece el enlace de
entrada seleccionado en ese momento. El recuadro de selección está desmarcado
de forma predeterminada.
Si se selecciona Habilitar la agrupación de transacciones, un grupo de
transacciones sólo podrá utilizar un valor de 1 para Filas por transacción.
v Nombre de entrada. Nombre no editable del enlace de entrada.
v Al saltar. Especifica si la transacción debe continuar o retrotraerse en el caso de
que un enlace se salte debido a una restricción no satisfecha.
v En caso de anomalía. Especifica si el proceso debe continuar o retrotraerse en el
caso de que la sentencia SQL se ejecute de forma anómala.

Manejo de transacciones
Para especificar la información de control de transacciones para un grupo de
transacciones:
1. Pulse el separador Manejo de transacciones.
2. Seleccione Habilitar la agrupación de transacciones.
3. Para los grupos de transacciones, la opción Filas por transacción se establece
automáticamente en 1 y no puede modificarse.
4. Indique los detalles necesarios sobre el grupo de transacciones en la cuadrícula.
La cuadrícula contiene una línea para cada enlace en el grupo de transacciones.
Los enlaces se muestran en el orden de proceso de las transacciones que se
establece en la etapa anterior Transformer. Cada línea contiene la siguiente
información:
v Nombre de entrada. Nombre no editable del enlace de entrada.
v Al saltar. Especifica si la transacción debe continuar o retrotraerse en el caso
de que un enlace se salte debido a una restricción no satisfecha. Las filas que
llegan a su enlace se saltan hasta que el enlace de control inicia otra
transacción. Seleccione Continuar o Retrotraer desde la lista.
v En caso de anomalía. Especifica si el proceso debe continuar o retrotraerse
en el caso de que la sentencia SQL se ejecute de forma anómala. Seleccione
Continuar o Retrotraer desde la lista.

Manejo de filas de rechazo


Durante el proceso de enlaces de entrada, la base de datos podría rechazar filas de
datos por varios motivos como, por ejemplo, violaciones de restricciones exclusivas
o no coincidencias de tipos de datos.

La etapa Oracle OCI graba la fila infractora en el registro para el trabajo. Para
obtener detalles sobre el mensaje de Oracle debe utilizar los mensajes de error
devueltos por la base de datos Oracle.

IBM InfoSphere DataStage proporciona un manejo adicional de las filas de rechazo.


Para utilizar esta opción:
1. Establezca el Tamaño de matriz en 1.
2. Utilice una etapa Transformer para redirigir las filas rechazadas.

48 Guía de conectividad para bases de datos Oracle


Luego puede diseñar su trabajo eligiendo un destino apropiado para las filas
rechazadas, como por ejemplo una etapa Sequential. Vuelva a utilizar este destino
como un origen de entrada después de solucionar los problemas con los valores de
la fila infractora.

Grabación de datos en Oracle


En las secciones siguientes se describen las diferencias cuando se utilizan
sentencias SQL INSERT, DELETE o UPDATE generadas o definidas por el usuario
para grabar datos de IBM InfoSphere DataStage en una base de datos Oracle.

Sentencias SQL y la etapa Oracle OCI


Puede crear sentencias SQL en la etapa Oracle OCI desde enlaces de entrada y
salida.

Desde un enlace de entrada, puede crear sentencias INSERT, sentencias UPDATE y


sentencias DELETE. Desde un enlace de salida puede crear sentencias SELECT.

Dispone de cuatro opciones para crear sentencias SQL:


v Utilizar el Creador de SQL.
v Generar sentencias basadas en los valores proporcionados a la etapa OCI.
v Entrar sentencias SQL definidas por el usuario.
v Cargar sentencias SQL desde un archivo en tiempo de ejecución.

Acceso al Creador de SQL desde una etapa de servidor


Puede utilizar el Creador de SQL para crear sentencias SQL utilizando una interfaz
gráfica.

Para acceder al Creador de SQL desde una etapa de servidor:


1. Seleccione Utilizar la herramienta Creador de SQL como Tipo de consulta en
el separador General del enlace de entrada o salida, o bien desde el separador
SQL.
2. Pulse el botón Creador de SQL. Se abrirá la ventana Creador de SQL.

Utilización de sentencias SQL generadas


De forma predeterminada, IBM InfoSphere DataStage graba datos en una tabla
Oracle utilizando una sentencia SQL INSERT, DELETE o UPDATE que construye.
La sentencia SQL generada se construye automáticamente utilizando la tabla y las
definiciones de columna de InfoSphere DataStage que especifique en las
propiedades de entrada para esta página. El separador SQL muestra la sentencia
SQL utilizada para grabar los datos.

Para utilizar una sentencia SQL generada:


1. Seleccione Generar acción de actualización desde los separadores Opciones y
Columnas en la lista Tipo de consulta.
2. Especifique cómo desea grabar los datos seleccionando una opción adecuada de
la lista Acción de actualización. Seleccione una de estas opciones para una
sentencia generada:
v Borrar tabla y, a continuación, insertar filas
v Truncar tabla y, a continuación, insertar filas
v Insertar filas sin borrar

Capítulo 4. Etapas Oracle OCI 49


v Suprimir sólo las filas existentes
v Sustituir totalmente las filas existentes
v Actualizar sólo las filas existentes
v Actualizar las filas existentes o insertar filas nuevas
v Insertar filas nuevas o actualizar las filas existentes
v SQL definido por el usuario
v Archivo SQL definido por el usuario
Consulte "Definición de datos de entrada" para obtener una descripción de
cada acción de actualización.
3. Entre una descripción opcional del enlace de entrada en el campo Descripción.
4. Entre un nombre de tabla en el campo Nombre de tabla de la página Opciones.
5. Pulse el separador Columnas de la página Entrada. Aparecerá el separador
Columnas.
6. Edite la cuadrícula Columnas para especificar las definiciones de columna para
las columnas que desea grabar.
La sentencia SQL se construye automáticamente utilizando la acción de
actualización seleccionada y las columnas especificadas.
7. Pulse el separador SQL de la página Entrada y, a continuación, el separador
Generada para ver esta sentencia SQL. No puede editar la sentencia aquí, pero
puede pulsar este separador en cualquier momento para seleccionar y copiar
componentes de la sentencia generada para pegarlos en la sentencia SQL
definida por el usuario.
8. Pulse Aceptar para cerrar el recuadro de diálogo Etapa ORAOCI9. Los cambios
se guardarán al guardar el diseño del trabajo.

Utilización de sentencias SQL definidas por el usuario


En lugar de grabar datos utilizando una sentencia SQL construida por IBM
InfoSphere DataStage, puede especificar su propia sentencia SQL INSERT, DELETE
o UPDATE para cada enlace de entrada de ORAOCI. (Puede incluir otras
sentencias SQL como CREATE TABLE sólo en una sentencia SQL anterior.)
Asegúrese que la sentencia SQL contiene el nombre de la tabla, el tipo de acción de
actualización que desea realizar y las columnas que desea grabar.

Para entrar una sentencia SQL definida por el usuario:


1. Seleccione Entrar sentencia SQL personalizada en la lista Tipo de consulta.
2. Pulse el separador Definido por el usuario del separador SQL.
3. Entre la sentencia SQL que desea utilizar para grabar datos en las tablas Oracle
de destino. Esta sentencia debe contener el nombre de la tabla, el tipo de acción
de actualización que desea realizar y las columnas que desea grabar. Sólo se
admiten dos sentencias SQL para enlaces de entrada.
Al grabar datos, las sentencias INSERT deben contener una cláusula VALUES
con dos puntos ( : ) utilizados como marcador de parámetro para la columna
de entrada de cada etapa. Las sentencias UPDATE deben contener cláusulas
SET con marcadores de parámetros para cada columna de entrada de la etapa.
Las sentencias UPDATE y DELETE deben contener una cláusula WHERE con
marcadores de parámetros para las columnas de clave primaria. Los
marcadores de parámetros deben estar en el mismo orden que las columnas
asociadas que se enumeran en las propiedades de la etapa. Por ejemplo:
insert emp (emp_no, emp_name) values (:1, :2)

50 Guía de conectividad para bases de datos Oracle


Si especifica dos sentencias SQL, se ejecutan como una transacción. No utilice
un punto y coma final.
No puede llamar a procedimientos almacenados ya que no existe ningún
recurso para analizar los valores de fila como parámetros.
A menos que especifique una sentencia SQL definida por el usuario, la etapa
generará automáticamente una sentencia SQL.
4. Pulse Aceptar para cerrar el recuadro de diálogo Etapa ORAOCI9. Los cambios
se guardarán al guardar el diseño del trabajo.

Definición de datos de salida


Los enlaces de salida especifican los datos que está extrayendo de una base de
datos Oracle. También puede especificar los datos en un enlace se salida utilizando
una sentencia SQL construida por IBM InfoSphere DataStage o una sentencia SQL
definida por el usuario. Estas sentencias SQL pueden ser:
v Totalmente generadas, utilizando Utilizar la herramienta Creador de SQL como
Tipo de consulta
v Generada por columnas, utilizando Generar cláusula SELECT a partir de la
lista de columnas; entrar otras cláusulas como Tipo de consulta
v Entrada o editada enteramente como texto, utilizando Entrar sentencia SQL
personalizada como Tipo de consulta
v Entrada desde un archivo, utilizando Cargar SQL de un archivo en tiempo de
ejecución como Tipo de consulta

La opción del Creador de SQL de sentencias SQL totalmente generadas constituye


el método más práctico para generar texto SQL. Se activa cuando selecciona
Utilizar la herramienta Creador de SQL como Tipo de consulta (consulte
"Separador General" ). El recuadro de diálogo Creador de SQL contiene toda la
información necesaria para generar el SQL para extraer datos de una base de datos
Oracle.

Las secciones siguientes describen las diferencias que surgen al utilizar sentencias
SQL SELECT para consultas generadas o definidas por el usuario que se definen
en la página Salida, en la ventana Etapa ORAOCI9 de la interfaz gráfica de
usuario.

Acerca de la página Salida


La página Salida contiene un campo y los separadores General, Opciones,
Columnas y SQL.
v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee
editar desde la lista Nombre de salida. Esta lista muestra todos los enlaces de
salida desde la etapa Oracle OCI.
v Los botones Columnas... y Ver datos... funcionan como los botones de la página
Entrada.

Separador General de la página Salida de la etapa Oracle OCI


Este separador se visualiza de forma predeterminada. Proporciona el tipo de
consulta y, si procede, un botón para abrir un recuadro de diálogo asociado. El
separador General contiene los campos siguientes:
v Tipo de consulta. Muestra las opciones siguientes.

Capítulo 4. Etapas Oracle OCI 51


– Utilizar la herramienta Creador de SQL. Especifica que la sentencia SQL se
crea utilizando la interfaz gráfica del Creador de SQL. Si se selecciona esta
opción, aparecerá el botón Creador de SQL. Si pulsa Creador de SQL, se
abrirá el Creador de SQL. Este es el valor predeterminado.
– Generar cláusula SELECT a partir de la lista de columnas; entrar otras
cláusulas. Especifica que InfoSphere DataStage genera la cláusula SELECT
basándose en las columnas seleccionadas en el separador Columnas. Si se
selecciona esta opción, aparecerá el botón Cláusulas SQL. Si pulsa Cláusulas
SQL, se abrirá el diálogo Cláusulas SQL (consulte el "Recuadro de diálogo
Cláusulas SQL" ). Utilice este recuadro de diálogo para refinar la sentencia
SQL.
– Entrar sentencia SQL personalizada. Especifica que se crea una sentencia
SQL personalizada utilizando el separador SQL. Consulte "Separador SQL" .
– Cargar SQL de un archivo en tiempo de ejecución. Especifica que los datos
se extraen utilizando la consulta SQL del nombre de vía de acceso del archivo
designado que hay en el servidor. Entre el nombre de la vía de acceso para
este archivo en lugar del texto de la consulta. Con esta opción, puede editar
las sentencias SQL.
v Descripción. Permite entrar una descripción opcional del enlace de salida.

Recuadro de diálogo Cláusulas SQL


Utilice este recuadro de diálogo para entrar las cláusulas SQL FROM, WHERE o de
otro tipo. Contiene los separadores Cláusulas y SQL.
v Separador Cláusulas. Utilice este separador para compilar consultas SQL
generadas por la columna. Contiene cláusulas SQL opcionales para la extracción
condicional de datos. El separador Cláusulas está dividido en tres paneles.
– Cláusula FROM (nombre de tabla). Permite asignar un nombre a la tabla
para la que se ejecuta la sentencia SQL. Para acceder a Definiciones de tabla,
pulse ... (puntos suspensivos).
– Cláusula WHERE. Permite insertar una cláusula SQL WHERE para
especificar los criterios que deben cumplir los datos antes de su selección.
– Otras cláusulas. Permite insertar una cláusula GROUP BY, HAVING u
ORDER BY para ordenar, resumir y agregar datos.
v Separador SQL. Utilice este separador para mostrar las sentencias SQL que leen
datos Oracle. No puede editar estas sentencias, pero puede utilizar Copiar para
copiarlas en el área común a fin de usarlas en cualquier ubicación.

Separador Opciones
Utilice este separador para especificar el aislamiento de la transacción, el tamaño
de la matriz, el tamaño de la memoria de captación previa y la distinción entre
mayúsculas y minúsculas.

El separador Opciones contiene los siguientes parámetros:


v Aislamiento de la transacción. Especifica los niveles de aislamiento de
transacción que proporcionan la coherencia y el control de concurrencia
necesarios entre las transacciones del trabajo y otras transacciones para un
rendimiento óptimo. Oracle no evita que otras transacciones modifiquen los
datos leídos por una consulta, por lo que estos datos podrían ser modificados
por otras transacciones entre dos ejecuciones de la consulta. De este modo, una
transacción que ejecuta una consulta indicada dos veces experimentaría tanto las
lecturas no repetibles como las lecturas fantasma. Utilice uno de los siguientes
niveles de aislamiento de transacción:

52 Guía de conectividad para bases de datos Oracle


– Lectura confirmada. Fija bloqueos exclusivos para los datos modificados y
bloqueos que se pueden compartir para todos los demás datos. Cada consulta
ejecutada por una transacción sólo visualiza los datos que se han confirmado
antes del inicio de la consulta (no de la transacción). Las consultas de Oracle
nunca leen los datos erróneos, es decir, los datos no confirmados. Éste es el
valor predeterminado.
– Serializable. Fija bloqueos exclusivos para los datos modificados y bloqueos
que se pueden compartir para todos los demás datos. Sólo muestra los
cambios confirmados al iniciar la transacción más los cambios realizados
propiamente por la transacción mediante las sentencias INSERT, UPDATE y
DELETE. Las transacciones serializables no experimentan ni lecturas no
repetibles ni lecturas fantasma.
– Sólo lectura. Sólo muestra aquellos cambios que se confirmaron al iniciarse la
transacción. Este nivel no permite sentencias INSERT, UPDATE ni DELETE.
v Tamaño de matriz. Especifica el número de filas que se leen simultáneamente en
la base de datos. Entre un número entero positivo para indicar el número de
filas que deben captarse previamente en una llamada. Este valor se utiliza tanto
para las filas de captación previa como para la captación de la matriz. Los
números más elevados utilizan más memoria del cliente para almacenar las filas
en memoria caché. De esta forma se minimizan las idas y vueltas del servidor y
se maximiza el rendimiento gracias a la ejecución de menos sentencias. Si este
número es demasiado elevado, el cliente podría quedarse sin memoria.
v Valor de memoria de captación previa. Establece el nivel de memoria para las
filas de nivel superior que deben captarse previamente. Para obtener más
información, consulte la documentación de Oracle. Exprese el valor en número
de bytes. bytes.
v Inhabilitar captación de matriz. Habilita o inhabilita la captación de la matriz
de Oracle. La captación de matriz se habilita de forma predeterminada. El valor
de Tamaño de matriz se utiliza para el tamaño de captación de la matriz.
v Habilitar nombre de tabla/columna que distingue entre mayúsculas y
minúsculas. Habilita la utilización de nombres de tabla y de columna que
distinguen entre mayúsculas y minúsculas. Seleccione la opción de delimitar
automáticamente los nombres de tabla y de columna en las sentencias SQL entre
comillas dobles (" "). Está desmarcado de forma predeterminada.

Nota: Si selecciona Habilitar nombre de tabla/columna que distingue entre


mayúsculas y minúsculas, al especificar nombres de columnas calificadas en la
celda Derivación del separador Columnas , debe delimitar estos nombres de
tabla y de columna entre comillas dobles (" ").

Separador Columnas
Este separador contiene las definiciones de columna para los datos a los que se da
salida en el enlace seleccionado.

La página del separador Columnas se comporta de la misma forma que el


separador Columnas de la etapa ODBC y especifica qué columnas se agregan.

Las definiciones de columna para los enlaces de salida contienen un campo clave.
Los campos clave se utilizan para unir entradas primarias y de referencia con una
etapa Transformer. Para un enlace de salida de referencia, la clave de Oracle OCI
lee los datos mediante una cláusula WHERE en la sentencia SQL SELECT.

La celda Derivación del separador Columnas contiene nombres de columna


calificados al completo al cargar definiciones de tabla desde el repositorio de IBM

Capítulo 4. Etapas Oracle OCI 53


InfoSphere DataStage. Si la celda Derivación no contiene ningún valor, Oracle OCI
sólo utilizará los nombres de columna para generar la sentencia SELECT mostrada
en el separador Generada del separador SQL. De lo contrario, utilizará el
contenido de la celda Derivación. En función del formato utilizado en el
repositorio, el formato será propietario.tabla.nombre.nombrecolumna o
nombretabla.nombrecolumna.

Las definiciones de columna para los enlaces de referencia requieren un campo


clave. Los campos clave unen los enlaces de referencia con la etapa Transformer. La
clave de Oracle OCI lee los datos mediante una cláusula WHERE en la sentencia
SQL SELECT.

Consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide para
v Una descripción sobre cómo entrar y editar definiciones de columna
v Los detalles sobre cómo se especifican y utilizan los campos clave

Separador SQL
Utilice esta página de separador para compilar las sentencias SQL empleadas para
leer datos de Oracle. Contiene las páginas de separador Consulta, Anterior y
Posterior:
v Consulta. Este separador es de sólo lectura si selecciona Utilizar la herramienta
Creador de SQL o Generar cláusula SELECT a partir de la lista de columnas;
entrar otras cláusulas para el Tipo de consulta. Si el Tipo de consulta es Entrar
sentencia SQL personalizada, este separador contendrá las sentencias SQL que
se ejecutan para leer los datos de Oracle. La interfaz gráfica de usuario muestra
la sentencia SQL generada por la etapa en este separador como un punto de
inicio. No obstante, puede entrar cualquier sentencia SQL adecuada que sea
válida. Si el Tipo de consulta es Cargar SQL de un archivo en tiempo de
ejecución, entre el nombre de la vía de acceso del archivo.
v Anterior. Contiene las sentencias SQL que se ejecutan antes de que la etapa
procese las filas de datos de trabajo. La sentencia SQL anterior es la primera
sentencia SQL que debe ejecutarse y puede especificar si el trabajo debe
continuar o terminar anormalmente después de que falle la ejecución de una
sentencia SQL anterior. No afecta al esquema de agrupación de transacciones. La
confirmación/retrotracción se realiza para cada enlace.
Si el valor de la propiedad empieza por FILE=, el texto restante se interpretará
como un nombre de vía de acceso y el contenido del archivo proporcionará el
valor de la propiedad.
v Posterior. Contiene la sentencia SQL posterior que se ejecuta después de que la
etapa procese las filas de datos de trabajo. Se trata de la última sentencia SQL
que debe ejecutarse y puede especificar si el trabajo debe continuar o terminar
anormalmente después de que falle la ejecución de una sentencia SQL posterior.
No afecta al esquema de agrupación de transacciones. La confirmación/
retrotracción se realiza para cada enlace.
Si el valor de la propiedad empieza por FILE=, el texto restante se interpretará
como un nombre de vía de acceso y el contenido del archivo proporcionará el
valor de la propiedad.

Lectura de datos Oracle


En las secciones siguientes se describen las diferencias cuando se utilizan consultas
generadas o consultas definidas por el usuario para leer datos de una base de
datos Oracle en IBM InfoSphere DataStage.

54 Guía de conectividad para bases de datos Oracle


Las definiciones de columna para los enlaces de referencia deben contener un
campo clave. Los campos clave se utilizan para unir entradas primarias y de
referencia con una etapa Transformer.

La clave de Oracle OCI lee los datos mediante una cláusula WHERE en sentencias
SQL SELECT.

Utilización de consultas generadas


IBM InfoSphere DataStage extrae datos de un origen de datos Oracle utilizando
una sentencia SQL SELECT completa que construye. La sentencia SQL se construye
automáticamente utilizando la información que ha especificado en las propiedades
de salida de la etapa.

Para utilizar consultas generadas:


1. Seleccione Generar cláusula SELECT a partir de la lista de columnas; entrar
otras cláusulas. Los datos se extraen de una base de datos Oracle utilizando la
sentencia SQL SELECT construida por InfoSphere DataStage. Además, aparece
el botón Cláusulas SQL.
2. Pulse Cláusulas SQL. Se abrirá la ventana Cláusulas SQL.

La sintaxis de las sentencias SQL SELECT es la siguiente:


cláusula SELECT cláusula FROM
[cláusula WHERE]
[cláusula GROUP BY]
[cláusula HAVING]
[cláusula ORDER BY];

Ejemplo de una sentencia Select de SQL


La sentencia SQL SELECT incluye otras cláusulas pertinentes basándose en las
entradas realizadas en los recuadros de texto Cláusula FROM (nombre de tabla),
Cláusula WHERE y Otras cláusulas de la ventana Cláusulas SQL.

Por ejemplo,
v Seleccione las columnas Name, Address, City, State, AreaCode y Telephone
Number de una tabla denominada Table1
v Especifique 617 como valor para AreaCode en el recuadro de texto Cláusula
WHERE
v Especifique City como la columna por la que debe ordenarse (ORDER BY) en el
recuadro de texto Otras cláusulas
La sentencia SQL que se muestra en el separador SQL es:
SELECT Name, Address, City, State, AreaCode, Telephone
FROM Table1 WHERE AreaCode = 617 ORDER BY City;

Utilización de consultas definidas por el usuario


En lugar de utilizar la sentencia SQL construida por IBM InfoSphere DataStage,
puede especificar su propia sentencia SQL para cada enlace de salida de Oracle
OCI.

Para entrar una consulta SQL definida por el usuario:


1. Seleccione Entrar sentencia SQL personalizada en la lista Tipo de consulta del
separador General de la página Salida. Se habilitará el separador SQL.

Capítulo 4. Etapas Oracle OCI 55


2. Puede editar o arrastrar y soltar las columnas seleccionadas en su sentencia
SQL definida por el usuario. Sólo se da soporte a una sentencia SQL para un
enlace de salida. Debe asegurarse de que las definiciones de tabla para el enlace
de salida sean correctas y representen las columnas previstas.
3. Si la entrada empieza por {FILE}, el texto restante se interpretará como un
nombre de vía de acceso y el contenido del archivo proporcionará el texto para
la consulta.
4. Pulse Aceptar para cerrar esta ventana. Los cambios se guardarán al guardar el
diseño del trabajo.

Consideraciones sobre el tipo de datos DATE


El tipo de datos DATE de Oracle contiene información sobre la fecha y la hora (el
tipo de datos TIME no existe en Oracle). IBM InfoSphere DataStage correlaciona el
tipo de datos DATE de Oracle con un tipo de datos Timestamp. Se trata del tipo de
datos predeterminado de InfoSphere DataStage al importar el tipo de metadatos de
Oracle de DATE.

InfoSphere DataStage utiliza la conversión de AAAA-MM-DD HH24:MI:SS al leer o


grabar una fecha de Oracle. Si el tipo de datos de InfoSphere DataStage es
Timestamp, InfoSphere DataStage utiliza la función to_date para esta columna
cuando genera la sentencia INSERT para grabar una fecha de Oracle. Si el tipo de
datos de InfoSphere DataStage es Timestamp o Date, InfoSphere DataStage utiliza
la función to_char para esta columna cuando genera la sentencia SELECT para leer
una fecha Oracle.

El ejemplo siguiente crea una tabla con un tipo de datos DATE en un servidor
Oracle. El tipo de datos de InfoSphere DataStage importados es de indicación de
fecha y hora (Timestamp).
create table dsdate (one date);

Los resultados variarán dependiendo de si la etapa Oracle OCI se utiliza como un


enlace de entrada o de salida:
v Enlace de entrada. La etapa genera la siguiente sentencia SQL:
insert into dsdate(one) values(TO_DATE(:1, ’yyyy-mm-dd hh24:mi:ss’))
v Enlace de salida. La etapa genera la siguiente sentencia SQL:
select TO_CHAR(one, ’YYYY-MM-DD HH24:MI:SS’) FROM dsdate

Soporte de tipos de datos Oracle


Las tablas siguientes documentan el soporte para los tipos de datos Oracle. Al
crear las definiciones de tabla de IBM InfoSphere DataStage para una tabla Oracle,
especifique el tipo de SQL, la longitud y los atributos de la escala como
corresponda.

Tipos de datos de carácter


La tabla siguiente resume los tipos de datos de carácter para Oracle, sus
definiciones de tipo de datos SQL de IBM InfoSphere DataStage y los atributos de
longitud correspondiente que es necesario especificar:

56 Guía de conectividad para bases de datos Oracle


Tabla 12. Tipos de datos de carácter de Oracle y los tipos de datos correspondientes de
InfoSphere DataStage
Tipo SQL de
InfoSphere
Tipo de datos Oracle DataStage Longitud Notas
CHAR (tamaño) Char (tamaño) tamaño Datos de carácter de
longitud fija de
longitud tamaño.

Fijo para cada fila de


la tabla (con espacios
finales). El tamaño
máximo es de 255
bytes por fila; el
tamaño
predeterminado es de
1 byte por fila.
VARCHAR2 (tamaño) VarChar (tamaño) tamaño Datos de carácter de
longitud variable.
Debe especificarse un
tamaño máximo.

VarChar es variable
para cada fila, hasta
2000 bytes por fila.

Tipos de datos numéricos


La tabla siguiente resume el tipo de datos NUMBER para Oracle, las definiciones
de tipo SQL de IBM InfoSphere DataStage, así como los atributos de longitud y de
escala correspondientes que es necesario especificar:

Capítulo 4. Etapas Oracle OCI 57


Tabla 13. Tipos de datos numéricos de Oracle y tipos de datos correspondientes de
InfoSphere DataStage
Tipo SQL de
Tipo de datos InfoSphere
Oracle DataStage Longitud Escala Notas
NUMBER (p,s) Decimal Double pp ss La definición de
Float Numeric tipo de SQL de
Integer Real InfoSphere
DataStage
utilizado
depende de la
aplicación de la
columna de la
tabla, es decir,
cómo se utiliza
la columna.

Los valores
decimales tienen
una precisión
máxima de 38
dígitos. Decimal
y Numeric
(numérico) son
sinónimos. Se da
soporte a la
gama completa
de valores
NUMBER de
Oracle sin
pérdida de
precisión.

Tipos de datos numéricos adicionales para Oracle


La tabla siguiente resume los tipos de datos numéricos adicionales de Oracle y sus
definiciones de tipo SQL de IBM InfoSphere DataStage:

58 Guía de conectividad para bases de datos Oracle


Tabla 14. Tipos de datos numéricos adicionales y el tipo de datos correspondiente en
InfoSphere DataStage
Tipo SQL de InfoSphere
Tipos de datos Oracle DataStage Notas
BINARY_DOUBLE Double v Cuando se lee una tabla,
InfoSphere DataStage
convierte las columnas con
un tipo de datos
BINARY_DOUBLE en
SQL_DOUBLE.
v Cuando se actualiza una
tabla, InfoSphere
DataStage convierte las
columnas con un tipo de
datos SQL_DOUBLE en
BINARY_DOUBLE.
Nota: Siga los pasos
siguientes para determinar el
tipo de datos de la columna
de origen. Al importar
definiciones de metadatos,
seleccione Importar >
Definiciones de tabla >
Definiciones de metadatos
de conector. Seleccione
ORAOCI9. Si selecciona
Incluir descripción de la
columna, la importación de
metadatos incluirá la
descripción de la columna en
el separador Columnas.

Capítulo 4. Etapas Oracle OCI 59


Tabla 14. Tipos de datos numéricos adicionales y el tipo de datos correspondiente en
InfoSphere DataStage (continuación)
Tipo SQL de InfoSphere
Tipos de datos Oracle DataStage Notas
BINARY_FLOAT Float v Cuando se lee una tabla,
InfoSphere DataStage
convierte las columnas con
un tipo de datos
BINARY_FLOAT o FLOAT
en SQL_FLOAT.
Nota: Siga los pasos
siguientes para determinar
el tipo de datos de la
columna de origen. Al
importar definiciones de
metadatos, seleccione
Importar > Definiciones
de tabla > Definiciones
de metadatos de conector.
Seleccione ORAOCI9. Si
selecciona Incluir
descripción de la
columna, la importación
de metadatos incluirá la
descripción de la columna
en el separador Columnas.
v Cuando se actualiza una
tabla, InfoSphere
DataStage convierte
SQL_FLOAT en
BINARY_FLOAT o FLOAT.
Para indicar
BINARY_FLOAT, coloque
la palabra clave
BINARY_FLOAT en
cualquier lugar del campo
de descripción de columna
en el separador Columnas.
Si BINARY_FLOAT está
presente, InfoSphere
DataStage convierte
SQL_FLOAT en
BINARY_FLOAT. Si
BINARY_FLOAT no está
presente, InfoSphere
DataStage convierte
SQL_FLOAT en FLOAT
(con precisión).

Tipos de datos Date


La tabla siguiente resume el tipo de datos DATE para Oracle y la definición de
tipo SQL de IBM InfoSphere DataStage:

60 Guía de conectividad para bases de datos Oracle


Tabla 15. Tipos de datos de fecha de Oracle y tipos de datos correspondientes de
InfoSphere DataStage
Tipo SQL de InfoSphere
Tipo de datos Oracle DataStage Notas
DATE Timestamp El formato predeterminado
para el tipo de datos
Timestamp predeterminado
de InfoSphere DataStage es
AAAA-MM-DD HH24:MI:SS.

Si el tipo de datos de
InfoSphere DataStage es
Timestamp, InfoSphere
DataStage utiliza la función
to_date para esta columna
cuando genera la sentencia
INSERT para grabar una
fecha de Oracle.

Si el tipo de datos de
InfoSphere DataStage es
Timestamp o Date,
InfoSphere DataStage utiliza
la función to_char para esta
columna cuando genera la
sentencia SELECT para leer
una fecha Oracle.

Para obtener más


información, consulte
"Consideraciones sobre el
tipo de datos DATE de
Oracle"

Tipos de datos diversos


La tabla siguiente resume diversos tipos de datos para Oracle y la definición de
tipo SQL de IBM InfoSphere DataStage:

Capítulo 4. Etapas Oracle OCI 61


Tabla 16. Diversos tipos de datos de Oracle y tipos de datos correspondientes de
InfoSphere DataStage
Tipo SQL de InfoSphere
Tipos de datos Oracle DataStage Notas
CLOB SQL_LONGVARCHAR La etapa Oracle OCI es
compatible con el tipo de
datos CLOB, correlacionando
el tipo de datos
LONGVARCHAR con una
precisión mayor que 4 KB
con el tipo de datos CLOB.
Para trabajar con una
definición de columna CLOB,
seleccione LONGVARCHAR
de InfoSphere DataStage
como tipo de datos de la
columna y proporcione una
longitud mayor que 4 KB en
la pestaña Columnas. El
tamaño máximo soportado
por InfoSphere DataStage es
de 2 GB. Una columna con
un tipo de datos CLOB no se
puede utilizar como clave.

Para obtener una lista de tipos de datos Oracle sin soporte, consulte
"Funcionalidad de las etapas Oracle OCI" .

Manejo de los caracteres $ y #


IBM InfoSphere DataStage se ha modificado para permitirle manejar bases de datos
Oracle OCI que utilizan los caracteres reservados # y $ de InfoSphere DataStage en
nombres de tabla y nombres de columna. InfoSphere DataStage convierte estos
caracteres en un formato interno y luego los vuelve a convertir según sea
necesario.

Para aprovechar este recurso, realice las siguientes tareas:


v En InfoSphere DataStage and QualityStage Administrator, abra el recuadro de
diálogo Variables de entorno para el proyecto en cuestión y establezca la
variable de entorno DS_ENABLE_RESERVED_CHAR_CONVERT en verdadera
(ésta se encuentra en la ramificación General\Personalizar).
v Evite utilizar las series __035__ y __036__ en los nombres de las tablas y las
columnas de Oracle. __035__ es la representación interna de # y __036__ es la
representación interna de $.

Importe metadatos utilizando la herramienta de importación de metadatos; evite


editarlos a mano (de este modo se reduce el riesgo de errores o confusiones).

Una vez que la definición de tabla esté cargada, se muestran los nombres internos
de tablas y columnas en lugar de los nombres de Oracle originales, tanto en las
definiciones de tabla como en el Navegador de datos. También se utilizan en las
derivaciones y en las expresiones. No obstante, los nombres originales (es decir,
aquellos que contienen $ o #) se utilizan en las sentencias SQL generadas y debería
usarlos si está entrando el SQL en el trabajo.

62 Guía de conectividad para bases de datos Oracle


Al utilizar una etapa Oracle OCI en un trabajo de servidor, debería utilizar los
nombres externos cuando entre sentencias SQL que contengan columnas de Oracle.
Las columnas que se encuentran dentro de la etapa se representan mediante :1, ;2 y
así sucesivamente; marcadores de parámetros) y están vinculadas a las columnas
por orden, de modo que no es necesario preocuparse de entrar nombres para las
mismas. Esto se aplica a:
v Consulta
v Actualización
v Inserción
v Clave
v Selección
v Cláusula WHERE

Por ejemplo, para una actualización podría entrar:


UPDATE nombre_tabla SET ##B$ = :1 WHERE $A# = :2

Tenga en cuenta especialmente que la clave de esta sentencia ($A#) se especifica


utilizando el nombre externo.

Capítulo 4. Etapas Oracle OCI 63


64 Guía de conectividad para bases de datos Oracle
Capítulo 5. Etapas Oracle OCI Load
Oracle OCI Load es una etapa pasiva que carga datos de archivos externos en una
tabla de Oracle. La base de datos Oracle puede residir local o remotamente. Esta
etapa tiene un enlace de entrada de secuencia, ningún enlace de salida y ningún
enlace de referencia de salida. El enlace de entrada proporciona una secuencia de
filas de datos para cargarla en la tabla Oracle utilizando la carga de la vía de
acceso directa. Este enlace de entrada corresponde a una sesión de carga masiva de
un trabajo de IBM InfoSphere DataStage. Tiene la opción de utilizar diferentes
modalidades de carga.

Oracle Call Interface (OCI) admite llamadas de carga de la vía de acceso directa
que acceden al formateador de bloques directos del servidor Oracle. Estas llamadas
realizan las funciones del programa de utilidad SQL*Loader de Oracle. Permite
cargar datos inmediatamente desde un archivo externo en un objeto de base de
datos Oracle, que es una tabla o una partición de una tabla particionada, en
modalidad automática.

Funcionalidad de las etapas Oracle OCI Load


La etapa Oracle OCI Load tiene la siguiente funcionalidad:
v Carga masiva desde un enlace de entrada de secuencia para proporcionar filas
de datos a la tabla de destino que reside local o remotamente.
v Carga inmediata y con retardo.
v Acciones de carga para especificar de qué modo los datos se cargan en la tabla
de destino.
v Carga de tabla o partición
v Soporte multilingüístico.

La siguiente funcionalidad no está soportada:


v Enlaces de salida o de referencia de salida.
v Importación de definiciones de tabla.
v Uso del tipo TIMESTAMP con fracciones de segundos, como por ejemplo,
hh:mm:ss:ff. Utilice el tipo de datos CHAR en su lugar.

Requisitos de configuración de las etapas Oracle OCI Load


Consulte el archivo readme.txt en línea para su plataforma para ver la información
más reciente sobre el release de IBM InfoSphere DataStage. La etapa Oracle OCI
Load necesita la siguiente configuración para InfoSphere DataStage y Oracle
Enterprise Edition:
v InfoSphere DataStage
– Para obtener información sobre los requisitos de configuración de InfoSphere
DataStage, consulte IBM InfoSphere Information Server Planning, Installation, and
Configuration Guide.
v Cliente de Oracle
– Utilice la versión del cliente Oracle en el servidor InfoSphere DataStage.

© Copyright IBM Corp. 2008, 2010 65


Plataformas
El cliente de Oracle y las máquinas de servidor deben tener el mismo tipo de
sistema operativo, para que funcionen correctamente, como por ejemplo UNIX y
UNIX o Windows 2000 y Windows 2000. Si mezclas las plataformas UNIX y
Windows para las máquinas de cliente Oracle y servidor Oracle, el trabajo de IBM
InfoSphere DataStage fallará, por ejemplo, si el cliente Oracle se encuentra en una
estación de trabajo UNIX y el servidor Oracle en una estación de trabajo Windows
2000.

Oracle Enterprise Manager


Si instala Oracle Enterprise Manager en la misma estación de trabajo que el cliente
de Oracle, el directorio padre del servidor de Oracle debe preceder al directorio
padre de Oracle Enterprise Manager. Asegúrese que la variable de entorno del
sistema PATH tenga el valor correcto. Por ejemplo:
d:\ oraclehome \bin;d:\ oraclemanager \bin

oraclehome es la ubicación en la que se ha instalado el software de Oracle.

oraclemanager es el nombre del directorio padre de Oracle Enterprise Manager.

Es posible que si efectúa cambios en las variables de entorno del sistema tenga que
rearrancar el sistema para que los valores de las variables entren en vigor.

La configuración de SQL*Net utilizando un programa de configuración como, por


ejemplo, SQL*Net Easy Configuration, para configurar y añadir alias de base de
datos, también es necesaria.

Modalidades de carga
La modalidad de carga especifica si hay que cargar los datos en el archivo de
destino en modalidad automática o manual. La propiedad Modalidad de carga
especifica si debe llenarse la base de datos Oracle inmediatamente o generar un
archivo de control y un archivo de datos para llenar la base de datos más tarde.
Las modalidades de carga son: automática y manual.

Modalidad de carga automática


La carga automática, que es el valor predeterminado, carga los datos durante el
trabajo de IBM InfoSphere DataStage. La etapa llena la base de datos Oracle
inmediatamente después de cargar los datos de origen. La carga automática se
produce cuando el servidor InfoSphere DataStage reside en el mismo sistema que
el servidor Oracle o cuando el servidor Oracle es remoto y tiene el mismo sistema
operativo que el servidor InfoSphere DataStage.

Modalidad de carga manual


Utilice la carga manual para modificar y mover el archivo de datos, el archivo de
control, o ambos, a un sistema diferente antes del proceso de carga real. Utilice la
modalidad manual para retardar la carga de los datos, acción que hará que los
archivos de datos y control necesarios para cargar los datos se graben en un
archivo ASCII. Los archivos de datos y control se utilizan para cargar los datos
más adelante.

66 Guía de conectividad para bases de datos Oracle


Carga de una base de datos Oracle
Con IBM InfoSphere DataStage and QualityStage Designer
1. Añada una etapa Oracle OCI Load a un trabajo de InfoSphere DataStage
2. Enlace la etapa Oracle OCI Load con su origen de datos
3. Especifique definiciones de columna mediante el separador Columnas
4. Determine la modalidad de carga correspondiente, tal y como se documenta en
"Modalidades de carga"
5. Añada los valores de propiedad adecuados en el separador Etapa, tal y como
se documenta en "Propiedades"
6. Compile el trabajo
7. Si el trabajo se compila correctamente, puede seleccionar una de las acciones
siguientes:
v Ejecute el trabajo desde dentro de InfoSphere DataStage and QualityStage
Designer
v Ejecutar o planificar el trabajo utilizando el InfoSphere DataStage and
QualityStage Director
8. Si el trabajo no se compila correctamente, corrija los errores y vuelva a
compilarlo

Propiedades
Utilice el separador Propiedades para especificar la operación de carga.

Cada propiedad de la etapa se describe según el orden de aparición.

Valor
Solicitud Tipo predeterminado Descripción
Nombre de servicio serie Nombre del servicio
de Oracle. Se trata de
la representación
lógica de la base de
datos, es decir, cómo
se presenta la base de
datos para los
clientes. El nombre
de servicio es una
serie que es el
nombre de la base de
datos global, el
nombre consta del
nombre de la base de
datos y del nombre
de dominio, que se
entra durante la
instalación o la
creación de la base
de datos.
Nombre de usuario serie Nombre de usuario
para conectar con el
servicio.
Contraseña serie Contraseña para el
"Nombre de usuario."

Capítulo 5. Etapas Oracle OCI Load 67


Valor
Solicitud Tipo predeterminado Descripción
Nombre de tabla serie Nombre de la tabla
de destino de Oracle
en la que deben
cargarse los archivos.
Nombre de esquema serie Nombre del esquema
en el que reside la
tabla que se está
cargando. Si no se
especifica, el nombre
del esquema será
"Nombre de usuario".
Nombre de partición serie Nombre de la
partición o
subpartición que
pertenece a la tabla
que debe cargarse. Si
no se especifica, se
cargará toda la tabla.
El nombre debe ser
un nombre válido de
partición o
subpartición.
Formato Date Lista de series DD-MES-YYYY Formato de fecha que
debe utilizarse.
Utilice uno de los
siguientes valores:

DD.MM.YYYY

YYYY-MM-DD

DD-MON-YYYY

MM/DD/YYYY
Formato Time Lista de series hh24:mi:ss Formato de hora que
debe utilizarse.
Utilice uno de los
siguientes valores:

hh24:mi:ss

hh:mi:ss am
Número máximo de Largo 100 Especifica el número
registros máximo de registros
de entrada en un
lote. Esta propiedad
sólo se utiliza si la
"Modalidad de carga"
se establece en
Automática.

68 Guía de conectividad para bases de datos Oracle


Valor
Solicitud Tipo predeterminado Descripción
Modalidad de carga Lista de series Automática Método utilizado
para cargar los datos
en el archivo de
destino. Esta
propiedad especifica
si debe llenarse la
base de datos Oracle
o generar un archivo
de control y un
archivo de datos para
llenar la base de
datos. Utilice uno de
los siguientes valores:

Automática
(modalidad
inmediata). La etapa
llena una base de
datos Oracle
inmediatamente
después de cargar los
datos de origen. La
carga de datos
automática sólo
puede producirse si
el servidor de IBM
InfoSphere DataStage
reside en el mismo
sistema que un
servidor de Oracle.

Manual (modalidad
con retardo). La
etapa genera un
archivo de control y
un archivo de datos
que puede editar y
ejecutar en cualquier
host de Oracle. La
etapa no establece
conexión con el
servidor de Oracle.
Vía de acceso del serie Nombre de la vía de
directorio acceso al directorio
en el que se generan
los archivos de
Oracle SQL*Loader.
Esta propiedad sólo
se utiliza si la
"Modalidad de carga"
se establece en
Manual.

Capítulo 5. Etapas Oracle OCI Load 69


Valor
Solicitud Tipo predeterminado Descripción
Nombre de archivo serie nombreservicio_ Nombre del archivo
de control nombretabla.ctl de control de Oracle
SQL*Loader
generado si la
"Modalidad de carga"
se establece en
Manual. Este archivo
de texto contiene la
secuencia de
mandatos que
indican dónde
pueden encontrarse
los datos, cómo
analizar e interpretar
los datos y dónde
insertarlos. Puede
modificar y ejecutar
este archivo en
cualquier sistema
host de Oracle. La
extensión de este
archivo es .ctl.
Nombre de archivo serie nombreservicio_ Nombre del archivo
de datos nombretabla.dat de datos secuencial
de Oracle
SQL*Loader creado si
la "Modalidad de
carga" se establece en
Manual. La extensión
de este archivo es
.dat.
Delimitador serie , (coma) Carácter utilizado
para delimitar
campos en los datos
de entrada del
cargador.
Conservar blancos Lista de series No Indicador que
especifica si
SQL*Loader debe
conservar los
espacios en blanco en
el archivo de datos.
Si se establece en No,
SQL*Loader tratará
los espacios en
blanco como nulos.

70 Guía de conectividad para bases de datos Oracle


Valor
Solicitud Tipo predeterminado Descripción
Distinción entre Lista de series No Indicador que
mayúsculas y especifica si se
minúsculas en el pueden utilizar
nombre de la mayúsculas y
columna minúsculas en los
nombres de columna.
Si se establece en No,
todos los nombres de
columna se tratarán
como mayúsculas. Si
se establece en Sí, se
acepta una
combinación de
caracteres en
mayúsculas y
minúsculas.

Capítulo 5. Etapas Oracle OCI Load 71


72 Guía de conectividad para bases de datos Oracle
Capítulo 6. Conector Oracle
Los temas siguientes describen cómo configurar y utilizar el conector Oracle en un
trabajo.

Requisitos para la instalación y configuración


Antes de crear un trabajo que utilice el conector Oracle, confirme los requisitos del
sistema y establezca las variables de entorno necesarias.

Confirme que el sistema cumple con los requisitos del sistema y que está
utilizando una versión soportada del cliente Oracle y el servidor Oracle. Para
obtener información del sistema, vaya a http://www.ibm.com/software/data/
infosphere/info-server/overview/

Para asegurarse de que el conector funciona correctamente, debe establecer la vía


de acceso de la biblioteca. NLS_LANG, TNS_ADMIN y ORACLE_HOME son
variables de entorno Oracle, puede considerar la posibilidad de configurarlas como
parte del proceso de configuración. Para obtener información adicional acerca de
las variables de entorno Oracle, consulte la documentación de Oracle.
Vía de acceso de la biblioteca
Edite la variable de entorno de vía de acceso de biblioteca para que incluya
el directorio donde las bibliotecas del cliente Oracle están ubicadas. El
nombre real de esta variable de entorno es PATH en Microsoft Windows,
SHLIB_PATH en HP-UX para PA-RISC, LIBPATH en IBM AIX y
LD_LIBRARY_PATH en todos los demás sistemas operativos UNIX y
Linux® soportados.
NLS_LANG
Esta variable de entorno Oracle especifica los valores de idioma, territorio
y juego de caracteres para los datos que el conector Oracle y cliente Oracle
intercambian. Si no establece esta variable de entorno, el cliente Oracle
utiliza el valor predeterminado AMERICAN_AMERICA.US7ASCII. Tenga
en cuenta que en sistemas Microsoft Windows, puede especificar el valor
NLS_LANG en el registro de Microsoft Windows. Después, cuando la
variable de entorno NLS_LANG no esté establecida, el cliente Oracle
utilizará el valor del registro en lugar de utilizar el valor predeterminado
AMERICAN_AMERICA.US7ASCII.
TNS_ADMIN u ORACLE_HOME
Puede utilizar las variables de entorno Oracle TNS_ADMIN u Oracle
ORACLE_HOME para especificar la ubicación del archivo de configuración
tnsnames.ora de Oracle. El archivo de configuración tnsnames.ora contiene
descriptores de conexión que describen los servicios de destino y la
información de ruta de red que el conector necesita para establecer
conexiones con las bases de datos Oracle.
Si utiliza la variable de entorno TNS_ADMIN, especifique como su valor el
directorio en el que el archivo tnsnames.ora está ubicado. Si utiliza la
variable de entorno ORACLE_HOME, especifique como su valor el
directorio que contiene el subdirectorio de red, que contiene el
subdirectorio admin, que contiene el archivo tnsnames.ora.

© Copyright IBM Corp. 2008, 2010 73


Si establece las dos variables de entorno, TNS_ADMIN y ORACLE_HOME,
la variable de entorno TNS_ADMIN tiene prioridad sobre la variable de
entorno ORACLE_HOME para localizar el archivo de configuración
tnsnames.ora.
Las variables de entorno TNS_ADMIN y ORACLE_HOME no son
obligatorias. Sin embargo, si no se especifica una o ninguna, no se puede
seleccionar un nombre de descriptor de conexión para definir la conexión
con la base de datos Oracle. En vez de ello, al definir la conexión, debe
proporcionar la definición de descriptor de conexión completa o especificar
una serie Easy Connect de Oracle.

Nota: Si utiliza Oracle Basic Instant Client o Basic Lite Instant Client, el
archivo tnsnames.ora no se crea automáticamente. Debe crearlo
manualmente y guardarlo en un directorio. Después especifique la
ubicación del archivo en la variable de entorno TNS_ADMIN.

Utilización del conector Oracle


Siga estas instrucciones paso a paso para utilizar el conector Oracle para leer,
grabar o buscar datos Oracle.

Lectura de datos de una base de datos Oracle


Configure el conector Oracle para que se conecte a una base de datos Oracle y lea
datos de ella.

Prerequisites

Complete estas tareas que son requisito previo:


v Verifique que el conector Oracle esté instalado y configurado correctamente.
v Verifique que el nombre de usuario que se conecta a la base de datos Oracle
tenga la autoridad y los privilegios correctos para realizar las acciones del
trabajo.

About this task

La figura siguiente muestra un ejemplo de utilización del conector Oracle para leer
datos. En este caso, el conector Oracle lee datos de una base de datos Oracle, pasa
las filas a una etapa Transformer, que transforma los datos y luego carga los datos
en el conector ODBC. Al configurar el conector Oracle para que lea datos, crea un
único enlace de salida, que se muestra aquí transfiriendo filas a la etapa
Transformer.

Figura 2. Ejemplo de lectura de datos de una base de datos Oracle

Procedure

74 Guía de conectividad para bases de datos Oracle


Para configurar el conector a fin de que lea datos de una base de datos Oracle,
complete estas tareas:
1. “Importación de metadatos Oracle” en la página 78
2. “Creación de un trabajo que incluye el conector Oracle y los enlaces necesarios”
en la página 80
3. “Definición de una conexión a una base de datos Oracle” en la página 95
4. “Configuración de las definiciones de columna en un enlace” en la página 96
5. “Especificación de la modalidad de lectura y el origen de datos” en la página
100
6. “Compilación y ejecución de un trabajo” en la página 106

Grabación de datos en una base de datos Oracle


Configure el conector Oracle para que se conecte a una base de datos Oracle y
grabe datos en ella.

Prerequisites

Complete estas tareas que son requisito previo:


v Verifique que el conector Oracle esté instalado y configurado correctamente.
v Verifique que el nombre de usuario que se conecta a la base de datos Oracle
tenga la autoridad y los privilegios correctos para realizar las acciones del
trabajo.

About this task

La figura siguiente muestra un ejemplo de utilización del conector Oracle para


grabar datos. En este caso, el conector ODBC lee datos de una base de datos y
transfiere esos datos a una etapa Transformer, que transforma los datos y los
transfiere al conector Oracle. El conector Oracle graba los datos en una base de
datos Oracle. Puesto que este trabajo incluye un enlace de rechazo opcional, el
conector Oracle transfiere los registros rechazados a una etapa que los almacena.
En este ejemplo, una etapa Sequential File almacena los registros rechazados. Al
configurar un enlace de rechazo, puede elegir la inclusión de un código de error de
Oracle y el texto de mensaje asociado con cada registro rechazado. Después de
ejecutar el trabajo, puede evaluar los registros rechazados y ajustar el trabajo y los
datos de acuerdo a ello.

Figura 3. Ejemplo de grabación de datos y de utilización de un enlace de rechazo.

Procedure

Para configurar el conector a fin de que grabe datos en una base de datos Oracle,
complete estas tareas:
1. “Importación de metadatos Oracle” en la página 78

Capítulo 6. Conector Oracle 75


2. “Creación de un trabajo que incluye el conector Oracle y los enlaces necesarios”
en la página 80
3. “Definición de una conexión a una base de datos Oracle” en la página 95
4. “Configuración de las definiciones de columna en un enlace” en la página 96.
5. “Especificación de la modalidad de grabación y la tabla de destino” en la
página 101
6. Opcional: “Rechazo de registros que contienen errores” en la página 103
7. “Compilación y ejecución de un trabajo” en la página 106

Búsqueda de datos en una base de datos Oracle


Configure el conector para realizar una búsqueda normal o una búsqueda dispersa
en una base de datos Oracle.

Prerequisites

Complete estas tareas que son requisito previo:


v Verifique que el conector Oracle esté instalado y configurado correctamente.
v Cree un trabajo que incluya un conector Oracle que esté enlazado a una etapa
Lookup mediante un enlace de referencia. Para la etapa Lookup, defina las
columnas y las correlaciones de columnas para el enlace de entrada, el enlace de
salida y el enlace de referencia de entrada.
v Verifique que el nombre de usuario que se conecta a la base de datos Oracle
tenga la autoridad y los privilegios correctos para realizar las acciones del
trabajo.

About this task

En la figura siguiente, una etapa Lookup extrae datos de una base de datos Oracle,
basándose en los valores de parámetros de entrada que la etapa Lookup
proporciona. Aunque el enlace de referencia parezca ir de un conector Oracle a la
etapa Lookup, el enlace transfiere datos al conector Oracle y desde él. Los
parámetros de entrada se transfieren desde el enlace de entrada en la etapa
Lookup al enlace de referencia, y los valores de salida que el conector Oracle
proporciona se transfieren desde la etapa Oracle hasta la etapa Lookup. Los valores
de salida se direccionan a las columnas del enlace de salida actual de la etapa
Lookup, según las correlaciones de columna definidas para la etapa Lookup.

Figura 4. Ejemplo de utilización del conector Oracle con una etapa Lookup.

76 Guía de conectividad para bases de datos Oracle


En una búsqueda normal, el conector ejecuta la sentencia SELECT o el bloque
PL/SQL especificados sólo una vez; por lo tanto, la sentencia SELECT o el bloque
PL/SQL no se pueden incluir en ningún parámetro de entrada. La etapa Lookup
busca en los datos del conjunto de resultados recuperados, coincidencias para los
conjuntos de parámetros que llegan en la forma de registros en el enlace de
entrada para la etapa Lookup. Una búsqueda normal también se denomina
búsqueda en la memoria porque la búsqueda se realiza en los datos almacenados
en la memoria caché.

En una búsqueda dispersa, el conector ejecuta la sentencia SELECT o el bloque


PL/SQL especificados una vez para cada conjunto de parámetros que llega en
forma de registro en el enlace de entrada para la etapa Lookup. Los parámetros de
entrada especificados en la sentencia deben tener columnas correspondientes
definidas en el enlace de referencia. Cada registro de entrada incluye un conjunto
de valores de parámetros que se representan mediante columnas de claves que el
conector establece en las variables de enlace de la sentencia SELECT o bloque
PL/SQL, y después el conector ejecuta la sentencia o bloque. El resultado de la
búsqueda se direcciona como uno o varios registros a través del enlace de
referencia desde el conector de nuevo a la etapa Lookup y desde ella al enlace de
salida de la etapa Lookup. Una búsqueda dispersa también se denomina búsqueda
directa porque la búsqueda se realiza directamente en la base de datos.

Procedure

Para configurar el conector para que busque datos en una base de datos Oracle:
1. Complete estos pasos:
a. Añada el conector Oracle al trabajo, cree un enlace de referencia desde el
conector Oracle hasta la etapa Lookup, y luego efectúe una doble pulsación
en el conector para abrir las propiedades.
b. En el campo Tipo de búsqueda, seleccione Normal o Dispersa.
2. Complete estas tareas:
a. “Definición de una conexión a una base de datos Oracle” en la página 95
b. “Especificación de la modalidad de lectura y el origen de datos” en la
página 100
c. “Configuración de las definiciones de columna en un enlace” en la página
96
d. “Compilación y ejecución de un trabajo” en la página 106

Tareas comunes para la lectura y la grabación de datos


Todos los trabajos necesitan que complete algunas de estas tareas comunes.

Establecimiento de privilegios de usuario necesarios


Para ejecutar un trabajo que utiliza el conector Oracle, el nombre de usuario que el
conector utiliza para conectarse a la base de datos necesita acceso SELECT para un
conjunto de vistas del diccionario y debe tener acceso a la tabla y base de datos
Oracle de destino.

About this task

Para realizar algunas operaciones, el conector Oracle accede a las vistas del
diccionario de Oracle. Todas las vistas excepto una están en la categoría ALL_ o
USR_, y el permiso para estas vistas está habilitado de forma predeterminada. Por

Capítulo 6. Conector Oracle 77


lo tanto, el nombre de usuario que el conector utiliza para conectarse a la base de
datos normalmente tiene acceso a esas vistas.

Sin embargo, debe otorgar acceso explícitamente para la vista del diccionario
DBA_EXTENTS. El acceso a esta vista es necesario para el método de lectura
particionada del rango de rowid. El rango de rowid es el método de lectura
particionada predeterminado, por lo que el conector intenta utilizar este método si
no selecciona explícitamente un método de lectura de partición diferente. Si no se
ha otorgado acceso para la vista del diccionario DBA_EXTENTS al nombre de
usuario que el conector utiliza para conectarse a la base de datos, el conector
cambia automáticamente el método de lectura particionada de rango de rowid a
hash de rowid.

Procedure

Para otorgar acceso SELECT a una vista del diccionario Oracle:


1. Para otorgar acceso SELECT a una sola vista del diccionario, emita la sentencia
siguiente:
GRANT SELECT ON vista_diccionario TO nombre_usuario

donde vista_diccionario es el nombre de la vista y nombre_usuario es el nombre


del usuario con el que el conector se conecta a la base de datos.
2. Para utilizar un rol a fin de otorgar a un usuario acceso SELECT a muchas
vistas del diccionario, utilice sentencias similares a las siguientes sentencias de
ejemplo. Estas sentencias de ejemplo muestran cómo crear un rol, otorgar
acceso a dos vistas del diccionario y luego asignar el rol a un usuario. Para
utilizar estas sentencias de ejemplo, sustituya nombre_rol, vista_diccionario y
nombre_usuario por los nombres específicos de la configuración y emita una
sentencia GRANT SELECT ON para cada vista del diccionario.
CREATE ROLE nombre_rol
GRANT SELECT ON vista1_diccionario TO nombre_rol
GRANT SELECT ON vista2_diccionario TO nombre_rol
GRANT nombre_rol TO nombre_usuario

Importación de metadatos Oracle


Utilice el asistente de importación para el conector para importar objetos de datos
que representan tablas y vistas en una base de datos Oracle. Los objetos de datos
se guardan en el repositorio de metadatos.

Prerequisites

Verifique los requisitos de configuración del conector Oracle.

Procedure

Para importar metadatos Oracle:


1. En el cliente IBM InfoSphere DataStage and QualityStage Designer, elija
Importar → Definiciones de tabla → Iniciar asistente de importación para el
conector.
2. Seleccione la variante del conector Oracle que corresponde al release del
cliente Oracle que ha instalado en el servidor InfoSphere DataStage.
3. Pulse en la flecha abajo en el campo Servidor para obtener una lista de
servicios Oracle, y luego realice una de las acciones siguientes:

78 Guía de conectividad para bases de datos Oracle


v Seleccione el servicio Oracle al que se va a conectar. Si la lista está vacía, el
conector no puede localizar el archivo tnsnames.ora de Oracle. El conector
intenta localizar el archivo comprobando las variables de entorno
TNS_ADMIN u ORACLE_HOME.
v Especifique el contenido completo del descriptor de conexión, como
aparecería en el archivo tnsnames.ora de Oracle; o especifique la serie Easy
Connect que define la conexión con la base de datos Oracle.
4. En los campos Nombre de usuario y Contraseña, especifique el ID de usuario
y la contraseña que se deben utilizar al autenticarse en el servicio de Oracle.
De forma predeterminada, el conector está configurado para la autenticación
de base de datos Oracle. Esta forma de autenticación requiere que los valores
que especifique en los campos Nombre de usuario y Contraseña coincidan
con las credenciales que están configuradas para el usuario en la base de
datos Oracle.
5. Opcional: En el campo Utilizar autenticación del sistema operativo,
seleccione Sí. Esta forma de autenticación requiere que el usuario se registre
en Oracle y se identifique como un usuario que el sistema operativo ha
autenticado.

Nota: Cuando el asistente de importación para el conector o el diálogo de


etapa del conector invoca el conector Oracle para realizar una operación en
tiempo de diseño, como importar metadatos, visualizar datos, probar una
conexión o enumerar servicios, el conector se ejecuta dentro del proceso del
agente ASB. Este proceso se ejecuta en el sistema en el que está instalado el
servidor InfoSphere DataStage. En un sistema que ejecuta Microsoft
Windows, el agente ASB se ejecuta bajo la cuenta del sistema local; en un
sistema que ejecuta Linux o UNIX, el agente ASB se ejecuta bajo la cuenta del
sistema raíz. Por lo tanto, si se elige Utilizar autenticación del sistema
operativo, las operaciones de tiempo de diseño utilizan las cuentas del sistema
incorporadas para autenticarse en la base de datos, un escenario que
generalmente se desea evitar.
6. Pulse Probar conexión, y luego Guardar para guardar la conexión. Si no
guarda la definición de conexión en el repositorio, sólo InfoSphere DataStage
puede acceder a los metadatos importados; es posible que otros componentes
y herramientas de InfoSphere Information Server no tengan acceso a los
metadatos.
7. En los campos Nombre de host y Nombre de base de datos, especifique los
nombres de los objetos de repositorio bajo los que desea importar los
metadatos. Si elige los valores que el conector proporciona como valores
predeterminados, se crean los objetos en el repositorio de metadatos si aún no
existen. De forma alternativa, puede realizar la selección en la lista de objetos
de host y de base de datos que ya están presentes en el repositorio. Para
definir un nuevo objeto de host y de base de datos, pulse Ubicación nueva...
No es necesario que los nombres de los objetos de host y de base de datos
coincidan con los nombres reales del sistema y de la base de datos del host
servidor Oracle. Sin embargo, la utilización de nombres que coinciden facilita
el seguimiento de los metadatos importados. El objeto de host del repositorio
sirve de contenedor lógico de los objetos de base de datos, que a su vez sirven
de contenedores para los objetos de metadatos importados.
8. El asistente proporciona tres niveles de filtro para que pueda reducir la lista
de objetos que se va a importar. Siga estos pasos para especificar la utilización
de uno o varios filtros:
a. El filtro Esquema muestra una lista de todos los propietarios de tablas en
la base de datos. Seleccione un esquema como primer filtro.

Capítulo 6. Conector Oracle 79


b. El filtro de tipos de tabla muestra una lista de tipos de objetos de esquema
para incluir en los resultados. De forma predeterminada, las opciones
Incluir vistas, Incluir tablas, Incluir vistas materializadas e Incluir tablas
organizadas por índice están seleccionadas. También puede seleccionar
Incluir tablas externas e Incluir sinónimos en los resultados. El filtro de
tipos es el segundo filtro.
c. En Filtro de nombre, especifique criterios adicionales que filtren la lista de
objetos por el nombre. Puede utilizar el signo de porcentaje (%) como un
carácter comodín. Por ejemplo, para obtener una lista de objetos que
contienen la palabra azul en su nombre, especifique %blue% en Filtro de
nombre.
9. En el panel Selección, seleccione una o varias tablas para importar. Para
importar definiciones para las claves primarias, claves foráneas e índices
asociados a las tablas seleccionadas, marque los recuadros relacionados. Para
ver los datos actuales en una tabla, seleccione la tabla y pulse Ver datos. Para
seleccionar tablas que tienen una relación de clave primaria o clave foránea
con la tabla seleccionada, pulse Tablas relacionadas.
10. Pulse Importar, y luego seleccione la ubicación en el repositorio de metadatos
bajo la cual se van a importar las definiciones de tabla.

Creación de un trabajo que incluye el conector Oracle y los


enlaces necesarios
Antes de poder leer, grabar o buscar datos en una base de datos Oracle, debe crear
un trabajo que incluya el conector Oracle, añadir cualquier etapa adicional
necesaria y crear los enlaces necesarios.

Para crear un trabajo que incluya el conector Oracle y los enlaces necesarios:
1. Desde IBM InfoSphere DataStage and QualityStage Administrator Designer
client, seleccione en el menú Archivo → Nuevo.
2. En la ventana Nuevo, seleccione el icono Trabajo paralelo o de servidor y pulse
Aceptar.
3. Siga estos pasos para añadir el conector Oracle al trabajo:
a. En la paleta del cliente del Diseñador, seleccione la categoría Base de datos.
b. Localice Oracle en la lista de bases de datos disponibles, y pulse la flecha
abajo para visualizar las etapas disponibles.
c. Arrastre el conector Oracle al lienzo.
4. Cree los enlaces necesarios y añada etapas adicionales para el trabajo:
v Para un trabajo que lea datos de Oracle, cree la siguiente etapa en el trabajo,
y luego cree un enlace de salida desde el conector Oracle hasta la etapa
siguiente.
v Para un trabajo que graba datos de Oracle, cree uno o varios enlaces de
entrada desde la etapa anterior del trabajo hasta el conector Oracle. Si utiliza
varios enlaces de entradas, puede especificar los datos de entrada y el orden
para el proceso de registros. Si desea gestionar registros rechazados, añada
una etapa para que contenga los registros rechazados, y luego añada un
enlace de rechazo desde el conector Oracle hasta esta etapa.
v Para un trabajo que busca datos Oracle, cree un trabajo que incluya una
etapa Lookup y luego cree un enlace de referencia desde el conector Oracle
hasta la etapa Lookup.

80 Guía de conectividad para bases de datos Oracle


Ordenación de los registros
Si el conector tiene varios enlaces de entrada, puede controlar el orden de proceso
de los datos de entrada a través de los enlaces.

Utilice uno de estos métodos para controlar el orden de proceso de los datos de
entrada:

Especificación del orden de datos de entrada por enlace de entrada:

Si el conector utiliza varios enlaces de entrada, puede controlar la secuencia en la


que se procesan los registros ordenando los enlaces.

El orden en que especifique los enlaces en el separador Orden de los enlaces


determina el orden en el que los registros de los enlaces se procesan en cada
unidad de trabajo.

Para especificar el orden de varios enlaces de entrada:


1. Seleccione un enlace de entrada desde el editor de etapas.
2. Pulse el separador Ordenación de los enlaces.
3. Pulse en un enlace que desee reordenar y utilice los botones de flecha para
subir o bajar el enlace.

Especificación del orden de los registros:

Si un conector tiene varios enlaces de entrada, puede controlar el orden de proceso


de registro especificando el orden de los registros.

Para especificar el orden de los registros:


1. Efectúe una doble pulsación en el icono de etapa del conector para abrir las
propiedades del conector.
2. Defina uno de estos tipos de orden de registros:
v Todos los registros especifica que se procesan todos los registros de cada
enlace en orden.
v Primer registro especifica que se procesa un registro de cada enlace, de uno
en uno, hasta que se procesen todos los registros de todos los enlaces.
v Ordenado especifica que los registros se procesan de cada enlace en el orden
que especifique utilizando las propiedades de columna de claves, orden
nulo y sensibles a mayúsculas y minúsculas.
3. Si elige Ordenado, complete estas propiedades adicionales:
a. Columna de claves – Especifique el nombre de la columna que se va a
utilizar como clave de ordenación.
b. Orden de clasificación – Especifique Ascendente o Descendente.
c. Orden nulo – Especifique si se van a ordenar valores nulos en el orden de
clasificación. Las opciones son Antes o Después.
d. Sensible a mayúsculas y minúsculas – Especifique si desea que las
comparaciones de texto sean sensibles a mayúsculas y minúsculas. Las
opciones son Sí o No.

Capítulo 6. Conector Oracle 81


Configuración de un trabajo paralelo
Al configurar el conector Oracle para que se ejecute en paralelo en varios nodos,
los datos que el conector va a procesar se distribuyen entre todos los nodos
disponibles. Entonces, trabajando en paralelo, cada nodo procesa un subconjunto
distinto de datos.

Para configurar un trabajo paralelo, configure los nodos y luego configure una
lectura en paralelo o una grabación en paralelo:

Configuración de nodos
Para modificar el número de nodos en los que un trabajo se ejecuta, edite el
archivo de configuración que especifica los nodos, las agrupaciones de nodos y las
restricciones.

About this task

El archivo de configuración paralelo predeterminado, default.apt, se crea al


instalar IBM InfoSphere DataStage. La variable de entorno APT_CONFIG_FILE
especifica la ubicación del archivo de configuración. El valor predeterminado de la
variable es IS_HOME/Server/Configurations/default.apt donde IS_HOME es el
directorio padre de InfoSphere Information Server. En sistemas que ejecutan
Microsoft Windows, el directorio de instalación predeterminado es
C:\IBM\InformationServer. En sistemas que ejecutan UNIX o Linux, el directorio
de instalación predeterminado es /opt/IBM/InformationServer.

Puede especificar el archivo de configuración a nivel de proyecto y a nivel de


trabajo. Para especificar el valor de la variable de entorno APT_CONFIG_FILE
como la propiedad de un proyecto, se utiliza el cliente de InfoSphere DataStage
and QualityStage Designer. El archivo que especifique a nivel de proyecto controla
todas las etapas configuradas para ejecutarse en paralelo en todos los trabajos
incluidos en el proyecto. Para especificar un archivo de configuración que se
aplique a un trabajo específico, añada la variable de entorno APT_CONFIG_FILE al
conjunto de parámetros de trabajo que defina para ese trabajo.

Hay dos maneras de especificar una variable de entorno como parámetro de


trabajo. Puede utilizar el cuadro de diálogo Parámetros de trabajo para especificar
el valor predeterminado que se debe utilizar cada vez que se ejecute el trabajo, o
puede especificar manualmente el valor cada vez que ejecute el trabajo.

Además puede configurar el conector para que ejecute un subconjunto de los


nodos que están definidos en el archivo de configuración.

Procedure

Para configurar el conector para que se ejecute en múltiples nodos de proceso:


1. Cree un nuevo archivo de configuración o edite un archivo de configuración
existente.
2. Establezca la variable de entorno APT_CONFIG_FILE en la vía de acceso
completa del archivo de configuración que desee utilizar.
3. En el separador Avanzado de las propiedades de etapas del conector, realice las
tareas siguientes:
a. Verifique que la propiedad Modalidad de ejecución esté establecida en
Paralelo, que es el valor predeterminado.

82 Guía de conectividad para bases de datos Oracle


b. Opcional: Utilice los campos Restricciones de agrupaciones de nodos y
recursos y Restricciones de correlaciones de nodos para restringir los
nodos en los que se ejecuta el conector.

Nota: Si piensa utilizar el método de lectura Particiones Oracle para leer


datos de una tabla Oracle particionada o si piensa utilizar el tipo de
partición Conector Oracle para grabar datos en una tabla Oracle
particionada, no especifique ninguna restricción. Como alternativa, incluya
la restricción de recursos ORACLE en el archivo de configuración para
especificar los nodos en los que desea ejecutar el conector Oracle.

Ejemplos: Restricción de nodos en un trabajo paralelo:

Estos ejemplos presentan un archivo de configuración paralelo de ejemplo y


muestran cómo utilizar agrupaciones de nodos para restringir los nodos en los que
el conector se ejecuta.

En el archivo de configuración paralelo, se especifican nodos y agrupaciones de


nodos. Después se utiliza uno de los métodos siguientes para configurar el
conector para que se ejecute únicamente en un subconjunto de nodos especificados
en el archivo de configuración paralelo:
v Defina una agrupación de nodos en el archivo de configuración paralelo.
Después en el separador Avanzado de las propiedades del conector, seleccione
esa agrupación de nodos. El conector sólo se ejecuta en los nodos que son
miembros de esa agrupación de nodos.
v En el separador Avanzado de las propiedades del conector, seleccione nodos
específicos.

El archivo de configuración paralelo de ejemplo siguiente define cuatro nodos:


nodo1, nodo2, nodo3 y nodo4. Cada nodo se ejecuta en MIHOST, que es el sistema
que ejecuta el servidor IBM InfoSphere DataStage. El archivo define cuatro
agrupaciones de nodos: agrupación1, agrupación2, agrupación3 y agrupación4, así
como la agrupación "" predeterminada. La variable de entorno APT_CONFIG_FILE
apunta a este archivo de configuración paralelo.
{
node "nodo1"
{
fastname "MIHOST"
pools "" "grupo1" "grupo2" "grupo3"
resource disk "/opt/IBM/InformationServer/Server/Datasets" {pools ""}
resource scratchdisk "/opt/IBM/InformationServer/Server/Scratch" {pools ""}
}
node "nodo2"
{
fastname "MIHOST"
pools "" "grupo1" "grupo2"
resource disk "/opt/IBM/InformationServer/Server/Datasets" {pools ""}
resource scratchdisk "/opt/IBM/InformationServer/Server/Scratch" {pools ""}
}
node "nodo3"
{
fastname "MIHOST"
pools "" "grupo1" "grupo3"
resource disk "/opt/IBM/InformationServer/Server/Datasets" {pools ""}
resource scratchdisk "/opt/IBM/InformationServer/Server/Scratch" {pools ""}
}

node "nodo4"
{
fastname "MIHOST"

Capítulo 6. Conector Oracle 83


pools "" "grupo1" "grupo2"
resource disk "/opt/IBM/InformationServer/Server/Datasets" {pools ""}
resource scratchdisk "/opt/IBM/InformationServer/Server/Scratch" {pools ""}
}
}

Para el primer ejemplo, suponga que sigue estos pasos:


1. En el separador Avanzadas de las propiedades de la etapa, seleccione
Restricciones de agrupaciones de nodos y recursos.
2. En el campo Restricción, seleccione Agrupación de nodos.
3. En el campo Nombre, seleccione grupo3.
La ejecución del conector se restringe únicamente al nodo1 y nodo3 porque sólo
estos dos nodos pertenecen a la agrupación de nodos grupo3.

Para el segundo ejemplo, suponga que realiza estos pasos:


1. En el separador Avanzado de las propiedades de la etapa, seleccione
Restricciones de correlaciones de nodos.
2. Seleccione nodo1 y nodo2.
La ejecución del conector se restringe únicamente al nodo1 y el nodo2 porque estos
nodos se especifican explícitamente.

Configuración de una lectura en paralelo


En una lectura en paralelo, cada nodo que se especifica para la etapa lee un
subconjunto distinto de datos de la tabla de origen.

Prerequisites

El conector debe utilizarse en un trabajo paralelo.

Para utilizar el método de lectura en paralelo del rango de rowid predeterminado,


el usuario cuyas credenciales se utilizan para conectar con la base de datos Oracle
debe tener acceso select a la vista de diccionario DBA_EXTENTS.

Si el conector está configurado para buscar datos, el Tipo de búsqueda debe ser
Normal.

About this task

Si el conector está configurado para ejecutarse en modalidad paralela para leer


datos, el conector ejecuta una sentencia SELECT ligeramente modificada en cada
nodo. El conjunto combinado de filas de todas las consultas es el mismo conjunto
de filas que se devolvería si la sentencia SELECT definida por el usuario sin
modificar se ejecutara una vez en un nodo.

Procedure

Para configurar una lectura en paralelo:


1. En el separador Avanzado, establezca Modalidad de ejecución en Paralelo.
2. En el separador Propiedades, establezca Habilitar lecturas particionadas en Sí.
3. Establezca Modalidad de lectura en Seleccionar.
4. Utilice uno de estos métodos para definir la sentencia SELECT que el conector
utilizará en tiempo de ejecución:

84 Guía de conectividad para bases de datos Oracle


v Establezca Generar SQL en tiempo de ejecución en Sí, y luego especifique
el nombre de la tabla en la propiedad Nombre de tabla. Utilice la sintaxis
nombre_esquema.nombre_tabla, donde nombre_esquema es el propietario de la
tabla. Si no especifica nombre_esquema, se utiliza el esquema que pertenece al
usuario conectado actualmente. El conector genera automáticamente la
sentencia SELECT * FROM nombre_esquema.nombre.tabla.

Nota: Para leer datos de una partición en particular de una tabla


particionada, establezca la propiedad Ámbito de tabla en Única partición, y
especifique el nombre de la partición en la propiedad Nombre de partición.
El conector añadirá automáticamente una cláusula
PARTITION(nombre_partición) a la sentencia SELECT generada. Para leer
datos de una subpartición determinada de la tabla particionada compuesta,
establezca la propiedad Ámbito de tabla en Única subpartición y
especifique el nombre de la subpartición en la propiedad Nombre de
subpartición. Entonces el conector añade automáticamente una cláusula
SUBPARTITION(nombre_subpartición) a la sentencia SELECT generada.
v Establezca Generar SQL en tiempo de ejecución en No, y luego especifique
la sentencia SELECT en la propiedad Sentencia Select. Puede escribir la
sentencia SQL o especificar el nombre de archivo calificado al completo del
archivo que contiene la sentencia SQL. Si especifica un nombre de archivo,
también debe establecer Leer sentencia select del archivo en Sí.
5. En el separador Particionamiento, establezca la propiedad Método de lecturas
particionadas en el método de particionamiento que desea utilizar. El método
de particionamiento predeterminado es Rango de rowid.
6. Para proporcionar los valores de entrada que el método de lectura particionada
utiliza, complete estos pasos:
a. En la propiedad Nombre de tabla para lecturas particionadas, especifique
el nombre de la tabla que el método de lectura particionada utiliza para
definir los subconjuntos de datos que cada nodo lee de la tabla de origen.

Nota: Si no especifica un nombre de tabla, el conector utiliza el valor de la


propiedad Generar SQL en tiempo de ejecución para determinar el nombre
de tabla. Si Generar SQL en tiempo de ejecución se establece en Sí, el
conector utiliza el nombre de tabla que se ha especificado en la propiedad
Nombre de tabla. Si Generar SQL en tiempo de ejecución se establece en
No, el conector consulta la sentencia SELECT que se ha especificado en la
propiedad Sentencia Select y utiliza el primer nombre de tabla que se
especifica en la cláusula FROM.
b. Si elige los métodos de lectura particionada Rango de rowid o Rango
mínimo y máximo, en la propiedad Nombre de partición o subpartición
para lecturas particionadas, especifique el nombre de la partición o
subpartición que los métodos de lectura particionada utilizan.

Nota: Si no especifica un valor para la propiedad Nombre de partición o


subpartición para lecturas particionadas, el conector utiliza toda la tabla
como entrada para el método de lectura particionada. Cuando el conector
está configurado para leer datos de una única partición o subpartición,
normalmente se especifica el nombre de la partición o subpartición en la
propiedad Nombre de partición o subpartición para lecturas particionadas.
El conector analizará solamente los datos que pertenecen a esa partición o
subpartición. Generalmente, este proceso da como resultado una
distribución más equitativa de los datos y un uso más eficiente de los
nodos.

Capítulo 6. Conector Oracle 85


c. Si elige el método de lectura Módulo o Rango mínimo y máximo, en
Nombre de columna para lecturas particionadas, especifique el nombre de
la columna de la tabla de origen que se va a utilizar para el método. La
columna debe ser una columna existente en la tabla, debe ser del tipo de
datos NUMBER(p), donde p es la precisión del número que debe tener una
escala de cero.

Soporte para métodos de lectura particionada:

El conector soporta estos métodos de lectura particionada: rango de rowid,


iteración cíclica de rowid, hash de rowid, módulo, rango mínimo y máximo, y
particiones Oracle.

En todos los métodos de lectura particionada, excepto en el método de particiones


Oracle, el conector modifica la cláusula WHERE de la sentencia SELECT
especificada. Si la cláusula WHERE no se incluye en la sentencia SELECT
especificada, el conector añade una cláusula WHERE. En el método de particiones
Oracle, el conector modifica la sentencia SELECT especificada añadiendo una
cláusula PARTITON(nombre_partición). Cuando la sentencia SELECT especificada
contiene subconsultas, el conector modifica la primera subconsulta SELECT...FROM
de la sentencia SELECT.

Rango de rowid

Cada tabla Oracle incluye una pseudocolumna de ROWID que contiene un valor
de rowid que identifica de forma exclusiva cada fila de la tabla. Cuando se utiliza
el método de rango de rowid, el conector realiza estos pasos:
1. El conector consulta la vista de diccionario DBA_EXTENTS para obtener la
información de almacenamiento sobre la tabla de origen.
2. El conector utiliza la información de la vista de diccionario DBA_EXTENTS
para definir un rango de valores de ROWID para cada nodo.
3. En tiempo de ejecución, cada nodo ejecuta la sentencia SELECT especificada
con una cláusula WHERE ligeramente modificada. La cláusula WHERE asegura
que el nodo sólo leerá las filas que tienen valores de ROWID en el rango
asignado. Si la sentencia SELECT especificada no contiene una cláusula
WHERE, el conector la añade.

El conector no soporta el método de rango de rowid en estos casos:


v Cuando no se ha otorgado el acceso select sobre la vista de diccionario
DBA_EXTENTS para el usuario conectado actualmente.
v Cuando el conector lee una tabla organizada por índice
v Cuando el conector lee una vista
En estos casos, el conector registra un mensaje de aviso y automáticamente utiliza
el método hash de rowid, que no tiene estas restricciones.

Iteración cíclica de rowid

El método de iteración cíclica de rowid utiliza la función ROWID_ROW_NUMBER


del paquete DBMS_ROWID para obtener el número de la fila del bloque de tabla
en la que reside la fila y utiliza la función MOD en el número de fila para
distribuir las filas uniformemente entre los nodos.

Las ventajas de utilizar el método de iteración cíclica de rowid en lugar de utilizar


el método de rango de rowid son:

86 Guía de conectividad para bases de datos Oracle


v El usuario conectado actualmente no necesita el acceso select para la vista de
diccionario DBA_EXTENTS.
v El método de iteración cíclica de rowid soporta la lectura de datos de una tabla
organizada por índice.
v El método de iteración cíclica de rowid soporta la lectura de datos de una vista.
Las filas de la vista deben corresponder a las filas físicas de la tabla. El método
de iteración cíclica de rowid no puede leer filas de una vista que se derive de
una operación de unión en dos o más tablas.

Las ventajas de utilizar el método de rango de rowid en lugar de utilizar el


método de iteración cíclica de rowid son:
v La sentencia SELECT para cada nodo es menos compleja porque no necesita
tantas funciones SQL.
v El método de rango de rowid proporciona una distribución mejor de las filas
entre los nodos porque la distribución se basa en la colocación física de las filas.
En general, el método de rango de rowid necesita que el conector realice menos
operaciones de lectura en la tabla de origen.

Hash de rowid

El método de hash de rowid es similar al método de iteración cíclica de rowid


excepto en que en lugar de utilizar la función ROWID_ROW_NUMBER para
obtener el número de fila, el método de hash de rowid utiliza la función
ORA_HASH para obtener un valor de hash para el valor de rowid de cada fila. El
método de hash de rowid aplica la función MOD en el número de fila para
distribuir filas uniformemente entre los nodos.

Módulo

Para utilizar este método, debe especificar un nombre de columna de la tabla de


entrada en la propiedad Nombre de columna para lecturas particionadas. La
columna especificada debe ser del tipo de datos NUMBER(p), donde p es un valor
entre 1 y 38. La columna especificada debe existir en la tabla que se especifica en la
propiedad Nombre de tabla para lecturas particionadas, la propiedad Nombre de
tabla o la propiedad Sentencia Select, que sólo se utiliza si no se especifica
explícitamente el nombre de tabla en una de las otras dos propiedades.

Para cada nodo, el conector lee las filas que satisfacen la siguiente condición:
MOD(valor_columna, número_de_nodos) = número_nodo, donde MOD es la función de
módulo, valor_columna es el valor para la columna especificada en Nombre de
columna para lecturas particionadas, número_de_nodos es el número total de nodos
que la etapa ejecuta y número_nodo es el índice del nodo actual. Los índices son de
base cero. Por lo tanto, el primer nodo tiene el índice 0; el segundo nodo tiene el
índice 1; etcétera.

Rango mínimo y máximo

Para utilizar este método, debe especificar un nombre de columna en la propiedad


Nombre de columna para lecturas particionadas. La columna especificada debe
ser del tipo de datos NUMBER(p), donde p es un valor entre 1 y 38. El nombre de
columna debe ser de la tabla que se especifica en la propiedad Nombre de
columna para lecturas particionadas o la propiedad Nombre de tabla, o la
propiedad Sentencia Select, que sólo se utiliza si no especifica explícitamente el
nombre de tabla en una de las otras dos propiedades.

Capítulo 6. Conector Oracle 87


El conector calcula el valor mínimo y máximo para la columna especificada y
luego divide el rango calculado en un número igual de subrangos. El número de
subrangos es igual al número de nodos que se configura para la etapa. En cada
nodo, el conector ejecuta una sentencia SELECT que devuelve las filas para las que
la columna especificada tiene los valores que se encuentran en el subrango que
está asociado a este nodo.

Particiones Oracle

El método de particiones Oracle se puede utilizar con tablas particionadas. Cuando


se especifica este método, el conector determina el número de particiones de la
tabla y configura dinámicamente el número de nodos para que coincida con el
número de particiones de tabla. El conector asocia cada nodo con una partición de
tabla. Para cada nodo, el conector lee las filas que pertenecen a la partición que
está asociada a ese nodo. Para realizar esta operación, el conector añade la cláusula
PARTITION(nombre_partición) a la sentencia SELECT donde nombre_partición es el
nombre de la partición que está asociada al nodo actual. Por consiguiente, cuando
especifique un valor para la propiedad Sentencia Select, no incluya una cláusula
PARTITION ni SUBPARTITION.

Tenga en cuenta que el conector puede ajustar dinámicamente el número de nodos


en los que se ejecuta. Sin embargo, para que este proceso funcione, no utilice la
página Avanzado del diálogo de la etapa para restringir la configuración de nodos
en tiempo de diseño. Si la configuración de nodos se restringe en tiempo de diseño
y el número resultante de nodos no coincide con el número de particiones de la
tabla, el conector devuelve un error; y el trabajo falla.

Ejemplos: Utilización de métodos de lectura particionada:

Para comprender cómo funciona cada método de lectura particionada, revise estos
ejemplos de utilización de los métodos de rango de rowid, iteración cíclica de
rowid, hash de rowid, módulo, rango mínimo y máximo y particiones Oracle.

Rango de rowid

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cuatro
nodos.
v La propiedad Método de lecturas particionadas está establecida en Rango de
rowid.
En este ejemplo, el conector calcula el rango de rowid para cada nodo de proceso y
ejecuta una sentencia SELECT en cada nodo. Para cada nodo, la sentencia SELECT
especifica el rango de rowid que está asignado a ese nodo. Las sentencias SELECT
son similares a las sentencias siguientes, pero los valores del rango de rowid reales
variarán:

Nodo 1
SELECT * FROM TABLE1 WHERE TABLE1.ROWID BETWEEN ’AAARvrAAEAAAAVpAAA’ AND
’AAARvrAAEAAAAVuH//’ AND (COL1 > 10)

Nodo 2
88 Guía de conectividad para bases de datos Oracle
SELECT * FROM TABLE1 WHERE TABLE1.ROWID BETWEEN ’AAARvrAAEAAAAVvAAA’ AND
’AAARvrAAEAAAAV0H//’ AND (COL1 > 10)

Nodo 3
SELECT * FROM TABLE1 WHERE TABLE1.ROWID BETWEEN ’AAARvrAAEAAAAV1AAA’ AND
’AAARvrAAEAAAAV6H//’ AND (COL1 > 10)

Nodo 4
SELECT * FROM TABLE1 WHERE TABLE1.ROWID BETWEEN ’AAARvrAAEAAAAV7AAA’ AND
’AAARvrAAEAAAAWAH//’ AND (COL1 > 10)

Iteración cíclica de rowid

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cuatro
nodos.
v La propiedad Método de lecturas particionadas está establecida en Iteración
cíclica de rowid.
El conector ejecuta estas sentencias SELECT en los nodos:

Nodo 1
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 0 AND
(COL1 > 10)

Nodo 2
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 1 AND
(COL1 > 10)

Nodo 3
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 2 AND
(COL1 > 10)

Nodo 4
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 3 AND
(COL1 > 10)

Hash de rowid

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cuatro
nodos.
v La propiedad Método de lecturas particionadas está establecida en Hash de
rowid.
El conector ejecuta estas sentencias SELECT en los nodos:

Capítulo 6. Conector Oracle 89


Nodo 1
SELECT * FROM TABLE1 WHERE MOD(ORA_HASH(TABLE1.ROWID), 4) = 0 AND (COL1 > 10)

Nodo 2
SELECT * FROM TABLE1 WHERE MOD(ORA_HASH(TABLE1.ROWID), 4) = 1 AND (COL1 > 10)

Nodo 3
SELECT * FROM TABLE1 WHERE MOD(ORA_HASH(TABLE1.ROWID), 4) = 2 AND (COL1 > 10)

Nodo 4
SELECT * FROM TABLE1 WHERE MOD(ORA_HASH(TABLE1.ROWID), 4) = 3 AND (COL1 > 10)

Módulo

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cuatro
nodos.
v La propiedad Método de lecturas particionadas está establecido en Módulo.
v La propiedad Nombre de columna para lecturas particionadas está establecida
en COL2, y COL2 se ha definido como NUMBER(5) en TABLE1.
El conector ejecuta las siguientes sentencias SELECT en los nodos:

Nodo 1
SELECT * FROM TABLE1 WHERE MOD(TABLE1.COL2, 4) = 0 AND (COL1 > 10)

Nodo 2
SELECT * FROM TABLE1 WHERE MOD(TABLE1.COL2, 4) = 1 AND (COL1 > 10)

Nodo 3
SELECT * FROM TABLE1 WHERE MOD(TABLE1.COL2, 4) = 2 AND (COL1 > 10)

Nodo 4
SELECT * FROM TABLE1 WHERE MOD(TABLE1.COL2, 4) = 3 AND (COL1 > 10)

Rango mínimo y máximo

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cuatro
nodos.
v La propiedad Método de lecturas particionadas está establecida en Rango
mínimo y máximo.
v La propiedad Nombre de columna para lecturas particionadas está establecida
en COL2, y COL2 se ha definido como NUMBER(5) en TABLE1.

90 Guía de conectividad para bases de datos Oracle


El conector determina el valor mínimo y máximo para la columna COL2. Si el
valor mínimo es -20 y el valor máximo es 135, el conector ejecuta las siguientes
sentencias SELECT en los nodos:

Nodo 1
SELECT * FROM TABLE1 WHERE TABLE1.COL2 <= 18 AND (COL1 > 10)

Nodo 2
SELECT * FROM TABLE1 WHERE TABLE1.COL2 BETWEEN 19 AND 57 AND (COL1 > 10)

Nodo 3
SELECT * FROM TABLE1 WHERE TABLE1.COL2 BETWEEN 58 AND 96 AND (COL1 > 10)

Nodo 4
SELECT * FROM TABLE1 WHERE TABLE1.COL2 >= 97 AND (COL1 > 10)

Particiones Oracle

Esta es la configuración para este ejemplo:


v La propiedad Sentencia Select está establecida en SELECT * FROM TABLE1
WHERE COL1 > 10.
v La propiedad Nombre de tabla para lecturas particionadas está establecida en
TABLE1.
v El conector está configurado para ejecutar en modalidad paralela en cinco nodos.
v La propiedad Método de lecturas particionadas está establecida en Particiones
Oracle.
v TABLE1 tiene cuatro particiones:
CREATE TABLE TABLE1
(
COL1 NUMBER(10),
COL2 DATE
)
PARTITION BY RANGE (COL2)
(
PARTITION PART1 VALUES LESS THAN (TO_DATE(’01-JAN-2006’,’DD-MON-YYYY’)),
PARTITION PART2 VALUES LESS THAN (TO_DATE(’01-JAN-2007’,’DD-MON-YYYY’)),
PARTITION PART3 VALUES LESS THAN (TO_DATE(’01-JAN-2008’,’DD-MON-YYYY’)),
PARTITION PART4 VALUES LESS THAN (MAXVALUE)
);

El conector determina que TABLE1 tiene cuatro particiones: PART1, PART2, PART3
y PART4. El conector concluye que la etapa debe ejecutarse en cuatro nodos de
proceso. Puesto que la etapa se ha configurado para ejecutarse en cinco nodos, el
conector elimina el quinto nodo de la lista de nodos y registra un mensaje
informativo para indicar que la lista de nodos se ha ajustado y que la etapa se
ejecutará en cuatro nodos.

El conector ejecuta las siguientes sentencias SELECT en los nodos:

Nodo 1
SELECT * FROM TABLE1 PARTITION(PART1) WHERE COL1 > 10

Nodo 2
SELECT * FROM TABLE1 PARTITION(PART2) WHERE COL1 > 10

Capítulo 6. Conector Oracle 91


Nodo 3
SELECT * FROM TABLE1 PARTITION(PART3) WHERE COL1 > 10

Nodo 4
SELECT * FROM TABLE1 PARTITION(PART4) WHERE COL1 > 10

Configuración de una grabación en paralelo


En una grabación en paralelo, los registros que llegan en el enlace de entrada del
conector se distribuyen entre múltiples nodos. Después los registros se graban en
paralelo desde todos los nodos en la base de datos de destino.

Prerequisites

El conector debe utilizarse en un trabajo paralelo.

About this task

El tipo de partición predeterminada es Automática, que selecciona el tipo de


partición basándose en las distintas configuraciones para las etapas del trabajo. En
general, en lugar de utilizar Automática, es mejor seleccionar un tipo de partición
específico basado en la información que dispone de los datos reales y la tabla de
destino con la que el conector trabajará en tiempo de ejecución. En particular, si la
tabla de destino está particionada en rangos o en listas, la selección de Conector
Oracle puede ser una opción recomendable porque el conector particiona los
registros de entrada para que cada nodo grabe filas en la partición asociada a ese
nodo.

Procedure

Para configurar una grabación en paralelo:


1. En el lienzo paralelo, efectúe una doble pulsación en el icono del conector, y
luego seleccione el enlace de entrada.
2. En el separador Particionamiento, seleccione un tipo de partición.

Tipo de partición de conector Oracle:

Para una tabla con particionamiento de rango, particionamiento de lista o


particionamiento de intervalo, el tipo de partición del conector Oracle asegura que
la distribución de registros de entrada coincida con la organización de las
particiones de la tabla.

El conector Oracle soporta el uso de los tipos de partición incorporados como, por
ejemplo, Aleatorio y Módulo. Además, el conector proporciona un tipo de partición
adicional: el conector Oracle. La información siguiente describe cómo funciona el
conector cuando se selecciona el conector Oracle como tipo de partición.

Para particionar los registros de entrada entre nodos cuando el tipo de partición de
conector Oracle está seleccionado, el conector consulta primero la información de
particionamiento para la tabla. En la mayoría de casos el nombre de la tabla
coincide con el nombre de la tabla en la que el conector graba los datos; por lo
tanto, el nombre de tabla se especifica normalmente en la propiedad Nombre de
tabla o se especifica implícitamente en la sentencia SQL INSERT, UPDATE o
DELETE. Para configurar el conector a fin de que utilice la información de

92 Guía de conectividad para bases de datos Oracle


particionamiento de una tabla pero grabe los datos en una tabla diferente, se
especifica el nombre de tabla en la propiedad Nombre de tabla para grabaciones
particionadas.

El conector registra un mensaje informativo que contiene el nombre de la tabla de


la que recopila información de particionamiento. Si el conector no tiene suficiente
información para determinar el nombre de la tabla, el conector registra un mensaje
de aviso e impone la ejecución secuencial.

Después de determinar el nombre de tabla para la grabación particionada, el


conector determina el conjunto de nodos en los que se va a ejecutar. El conector
determina el número de particiones que están en la tabla y asocia un nodo a cada
partición. El número de particiones debe coincidir con el número de nodos. Hay
tres casos en que el resultado es una no coincidencia entre el número de nodos y el
número de particiones. En el primer caso, la configuración de los nodos de proceso
paralelo especifica una agrupación de nodos, una restricción de recursos o una
correlación de nodos. Si la configuración especifica una restricción, el conector no
puede modificar dinámicamente el conjunto de nodos de proceso, informa de un
error muy grave y detiene la operación. En el segundo caso, la lista de nodos que
están configurados para la etapa contiene más nodos que el número de particiones
de la tabla. En este caso, el conector elimina el exceso de nodos del final de la lista.
En el tercer caso, la lista de nodos configurados para la etapa contiene menos
nodos que el número de particiones de la tabla. En este caso, el conector añade
nodos al final de la lista. La definición para cada nodo añadido coincide con la
definición del último nodo de la lista original.

A continuación, el conector determina el nodo al que se debe enviar cada registro


de entrada. Para cada registro entrante, el conector inspecciona los datos de los
campos que corresponden a las columnas de tabla que constituyen la clave de
partición para la tabla. El conector compara estos valores con los valores de límite
especificados para las particiones individuales de la tabla y determina la partición
que almacenará los registros. Puesto que el número de nodos coincide con el
número de particiones y cada partición sólo tiene un nodo asignado, el conector
direcciona los registros al nodo que está asociado a cada partición y el nodo graba
los registros en la base de datos.

Para que el conector determine el número de particiones de una tabla y el tipo de


particionamiento que se ha utilizado para particionar la tabla, ésta debe existir en
la base de datos antes de ejecutar el trabajo. La única excepción a esta regla es
cuando la propiedad Acción en tabla se establece en Crear o Sustituir y la
propiedad Sentencia Create especifica una sentencia CREATE TABLE. En este caso,
el conector analiza la sentencia CREATE TABLE para determinar el número de
particiones y el tipo de partición que la tabla tendrá después de crearla en tiempo
de ejecución. El conector utiliza esta información para determinar el número de
nodos en los que la etapa se ejecutará. Tenga en cuenta que si la tabla utiliza un
tipo de partición soportada, por ejemplo, rango, lista o intervalo, pero la clave de
partición en la tabla incluye una columna virtual, el conector no impone la
ejecución secuencial. En vez de esto, el conector se ejecuta en el número de nodos
que es igual al número de particiones de tabla. Sin embargo, puesto que sólo un
nodo procesa realmente los datos, el conector se ejecuta efectivamente en
modalidad secuencial.

Si la propiedad Acción en tabla se establece en Crear o Sustituir y la propiedad


Generar sentencia create en tiempo de ejecución se establece en Sí, el conector no
crea la tabla como una tabla particionada. Por lo tanto, el conector no puede

Capítulo 6. Conector Oracle 93


asociar las particiones de tabla a los nodos. En este caso, el conector registra un
mensaje de aviso y ejecuta la etapa en modalidad secuencial.

Si la tabla no existe y la propiedad Sentencia SQL anterior o la propiedad


Sentencia SQL anterior (nodo) especifica la sentencia CREATE TABLE, el conector
informa de un error porque intenta determinar el número de particiones y el tipo
de partición antes de ejecutar la sentencia SQL anterior que crea la tabla.

Cuando Ámbito de tabla se establece en Única partición o Única subpartición, el


conector ejecuta la etapa en modalidad secuencial y registra un mensaje de aviso.
En este caso, el conector se configura explícitamente para grabar datos en
únicamente una partición o subpartición; por lo tanto, sólo un nodo se asigna a
esta partición o subpartición.

Tipos de partición Oracle

La lista siguiente describe cómo el tipo de partición del conector Oracle soporta
tipos de partición Oracle específicos.
Rango, rango de rangos compuestos, lista de rangos compuestos, hash de rangos
compuestos
El tipo de partición del conector Oracle soporta la grabación de tablas con
particionamiento de rango. El conector inspecciona los valores de los
campos de registro que corresponden a las columnas de claves de
partición, determina la partición a la que pertenece el registro y redirige el
registro al nodo asociado a la partición de tabla.
Lista, rango de listas compuestas, lista de listas compuestas, hash de listas
compuestas
El tipo de partición del conector Oracle soporta la grabación de tablas con
particionamiento de listas. El conector inspecciona el valor del registro que
corresponde a la columna de claves de partición, determina la partición a
la que pertenece el registro y redirige el registro al nodo asociado a la
partición de tabla.
Hash El tipo de partición del conector Oracle no soporta la grabación en las
tablas con particionamiento de hash. En este caso, el conector ejecuta la
etapa en modalidad secuencial y registra un mensaje de aviso.
Intervalo, rango de intervalos compuestos, lista de intervalos compuestos, hash
de intervalos compuestos
El tipo de partición del conector Oracle soporta la grabación en tablas con
particionamiento de intervalo. El conector inspecciona el valor del registro
que corresponde a la columna de claves de partición y determina la
partición a la que pertenece el registro. Si el registro pertenece a una de las
particiones que existían cuando se inició el trabajo, el conector redirige el
registro al nodo asociado a esa partición de tabla. De lo contrario, el
conector redirige el registro a un nodo especial que está reservado para
cargar registros en particiones nuevas, creadas dinámicamente.
Referencia
El tipo de partición de conector Oracle no soporta la grabación en tablas
con particionamiento de referencia. En este caso, el conector ejecuta la
etapa en modalidad secuencial y registra un mensaje de aviso.
Virtual
El tipo de partición del conector Oracle no soporta la grabación en una

94 Guía de conectividad para bases de datos Oracle


tabla en la que la clave de partición incluye una columna virtual. En este
caso, el conector ejecuta la etapa en modalidad secuencial y registra un
mensaje de aviso.
Sistema
El tipo de partición del conector Oracle no soporta la grabación en tablas
particionadas del sistema. En este caso, el conector ejecuta la etapa en
modalidad secuencial y registra un mensaje de aviso.

Definición de una conexión a una base de datos Oracle


Para acceder a datos de una base de datos Oracle, debe definir una conexión que
especifique el servidor, el nombre de usuario y la contraseña.

Prerequisites

Complete estas tareas que son requisito previo:


v Verifique que el conector Oracle esté instalado y configurado correctamente.
v Cree un trabajo que lea o grabe datos, añada el conector Oracle al trabajo y cree
cualquier enlace necesario.
v Verifique que el nombre de usuario que se conecta a la base de datos Oracle
tenga la autoridad y los privilegios correctos para realizar las acciones del
trabajo.
v Según cómo elija definir la conexión con la base de datos Oracle, confirme que
estas variables de entorno Oracle estén establecidas correctamente:
TNS_ADMIN, ORACLE_HOME, ORACLE_SID, TWO_TASK y LOCAL.

Procedure

Para definir una conexión con una base de datos Oracle:


1. Efectúe una doble pulsación en el icono de etapa del conector para abrir las
propiedades del conector.
2. En el campo Servidor, realice una de las acciones siguientes:
v Pulse Seleccionar para visualizar una lista de servicios Oracle, y luego
seleccione el servicio Oracle al que se va a conectar. Si la lista está vacía, el
conector no puede localizar el archivo tnsnames.ora de Oracle. El conector
intenta localizar el archivo comprobando las variables de entorno
TNS_ADMIN y ORACLE_HOME.
v Especifique el contenido completo del descriptor de conexión, como
aparecería en el archivo tnsnames.ora de Oracle.
v Utilice la sintaxis siguiente para especificar la serie Easy Connect de Oracle:
host[:puerto][/nombre_servicio]
v Deje la propiedad en blanco para conectarse al servicio local predeterminado
de Oracle. La variable de entorno ORACLE_SID define el servicio local
predeterminado. La variable de entorno TWO_TASK de Linux o UNIX y la
variable de entorno LOCAL de Microsoft Windows definen el servicio
remoto predeterminado.

Nota: Es preferible seleccionar un servicio de Oracle que utilizar las


variables de entorno TWO_PHASE o LOCAL.
3. En los campos Nombre de usuario y Contraseña, especifique el ID de usuario
y la contraseña que se deben utilizar al autenticarse en el servicio de Oracle. De
forma predeterminada, el conector está configurado para la autenticación de
base de datos Oracle. Esta forma de autenticación requiere que el nombre

Capítulo 6. Conector Oracle 95


especificado y la contraseña coincidan con las credenciales que están
configuradas para el usuario en la base de datos Oracle.
4. Opcional: En el campo Utilizar autenticación del sistema operativo, seleccione
Sí. Esta forma de autenticación requiere que el usuario se registre en Oracle y
se identifique como un usuario que el sistema operativo ha autenticado.

Configuración de las definiciones de columna en un enlace


Las definiciones de columna que establece en un enlace, especifican el formato de
los registros de datos que el conector Oracle lee de una base de datos o graba en
ella.

Procedure

Para configurar las definiciones de columna:


1. En el lienzo paralelo, efectúe una doble pulsación en el icono del conector
Oracle.
2. En la esquina superior izquierda del editor de etapas, seleccione el enlace que
desee editar. Tenga en cuenta que no puede editar directamente las columnas
en un enlace de rechazo. Las columnas del enlace de rechazo son copias de las
columnas definidas en el enlace de entrada y cualquier columna específica de
rechazo que seleccione en el separador Rechazo del diálogo de etapas.
3. Utilice uno de los métodos siguientes para configurar las definiciones de
columna:
a. Arrastre y suelte una definición de tabla de la vista del repositorio hasta el
enlace del lienzo de trabajo. Después utilice las teclas de flecha para mover
las columnas entre las listas Columnas disponibles y Columnas
seleccionadas.
b. En el separador Columnas, pulse Cargar y seleccione una definición de
tabla en el repositorio de metadatos. Después elija qué columnas de la
definición de tabla se deben aplicar al enlace, mueva las columnas de la
lista de Columnas disponibles a la lista de Columnas seleccionadas.
4. Pulse con el botón derecho del ratón en la cuadrícula de columnas y seleccione
Propiedades en el menú. Seleccione las propiedades que se deben visualizar,
especifique el orden en el que se deben visualizar y, a continuación, pulse
Aceptar.
5. Modifique las definiciones de columna. Puede cambiar los nombres de
columna, los tipos de datos y otros atributos. Además, puede añadir o insertar
manualmente nuevas columnas, así como eliminar las existentes.
6. Para guardar la definición de tabla nueva en el repositorio de metadatos,
complete estos pasos:
a. En el separador Columnas, pulse Guardar y luego pulse Aceptar para
visualizar la vista del repositorio.
b. Navegue hasta una carpeta existente, o cree una nueva carpeta en la que
guardar la definición de tabla.
c. Seleccione la carpeta y luego, pulse Guardar.

Correlaciones en tiempo de ejecución entre columnas DataStage


y parámetros de sentencias SQL
Al intercambiar datos con una base de datos Oracle, el conector supone que los
datos para cada columna se ajustan a la definición de tipo de datos que se ha
especificado para esa columna en el enlace.

96 Guía de conectividad para bases de datos Oracle


La definición de tipo de datos incluye el nombre del tipo de datos, la longitud, la
escala, los atributos opcionales y anulables. Si es necesaria la conversión del tipo
de datos, el conector se basa en la base de datos Oracle para aceptar o rechazar la
conversión. Si se rechaza la conversión debido a la incompatibilidad del tipo de
datos, el recorte de datos o algún otro problema, la base de datos Oracle notifica
un error; y el conector realiza la acción adecuada, por ejemplo, hacer que falle el
trabajo o rechazar la fila de datos.

Cuando la propiedad Modalidad de lectura se establece en Seleccionar o PL/SQL


y el conector se configura para leer datos de Oracle y proporcionar los datos en un
enlace de salida, el conector intenta encontrar coincidencias entre los nombres de
las columnas del conjunto de resultados y las columnas del enlace de salida. El
orden de las columnas en el enlace y en la base de datos Oracle no importa. Por
ejemplo, si el enlace de salida define las columnas COL1, COL2 y COL3 en ese
orden; y la sentencia SQL SELECT especificada recupera un conjunto de resultados
que se describe por el conjunto de columnas COL2, COL3 y COL1, el conector
busca las coincidencias de todas las columnas basándose en su nombre, aunque el
orden de las columnas no coincida. Si establece la propiedad Habilitar
identificadores con comillas en Sí, el conector realiza una búsqueda de
coincidencias de nombres que distingue entre mayúsculas y minúsculas. De lo
contrario, el conector realiza una búsqueda de coincidencias de nombres que no
distingue entre mayúsculas y minúsculas, es el valor predeterminado.

Si la propiedad Modalidad de lectura se establece en PL/SQL y Tipo de búsqueda


se establece en Dispersa, el conector busca coincidencias por nombre entre las
columnas del enlace de referencia y los parámetros del bloque PL/SQL. El conector
correlaciona las columnas marcadas como columnas de claves con los parámetros
de entrada/salida de PL/SQL y correlaciona las columnas restantes con los
parámetros de salida de PL/SQL.

Si el conector no puede encontrar coincidencias de los nombres, el conector intenta


utilizar el orden de las columnas para asociar las columnas del enlace y los
parámetros. Por lo tanto, el conector asocia la primera columna del enlace con el
primer parámetro, asocia la segunda columna del enlace con el segundo
parámetro, etcétera.

Cuando la propiedad Modalidad de grabación se establece en Insertar, Actualizar,


Suprimir o PL/SQL, el conector correlaciona las columnas del enlace de entrada
con los parámetros de entrada que se especifican en la sentencia SQL o PL/SQL.
Están disponibles dos formatos para especificar parámetros en la sentencia: sintaxis
DataStage y sintaxis Oracle. La lista siguiente describe la forma en que el conector
realiza la búsqueda de coincidencias, basándose en el formato que utiliza para
especificar los parámetros:
Sintaxis DataStage
La sintaxis DataStage es ORCHESTRATE.nombre_parámetro. Si utiliza la
sintaxis DataStage para especificar parámetros, el conector utiliza la
coincidencia de nombres. Por lo tanto, cada parámetro de la sentencia debe
coincidir con una columna del enlace, y el parámetro y la columna deben
tener el mismo nombre. Si el conector no puede localizar una columna
coincidente para un parámetro, se registra un mensaje y la operación se
detiene.

Capítulo 6. Conector Oracle 97


Nota: Para utilizar una palabra clave diferente de ORCHESTRATE en la
sintaxis DataStage, defina la variable de entorno
CC_ORA_BIND_KEYWORD y establezca su valor en la palabra clave que
desee utilizar.
sintaxis Oracle
La sintaxis Oracle es :nombre, donde nombre es el nombre del parámetro o
el número del parámetro. Si utiliza la sintaxis Oracle para especificar
parámetros, el conector intenta primero la coincidencia de nombres. Si la
coincidencia de nombres falla porque algún nombre o todos ellos no
coinciden, el conector comprueba si los valores de nombres son enteros. Si
todos los valores de nombres son enteros, el conector utiliza estos enteros
como ordinales de base 1 para las columnas del enlace. Si todos los valores
de nombres son enteros pero algunos o todos no son válidos, lo que
significa que son inferiores a 1 o mayores que el número total de columnas
del enlace, el conector notifica un error muy grave y la operación se
detiene. Si algunos de los valores de nombres no son enteros, el conector
busca las coincidencias basándose en el orden de columnas.

Nota: Para los bloques PL/SQL, debe utilizar la sintaxis Oracle. Si utiliza
la sintaxis DataStage, el conector registra un error y la operación se
detiene. Si utiliza valores enteros para nombres de parámetros, debe
especificar los enteros en orden creciente; de lo contrario, el conector
registra un mensaje muy grave y la operación se detiene.
Sintaxis DataStage y sintaxis Oracle
Si utiliza las dos sintaxis, DataStage y Oracle, para especificar parámetros,
el conector registra un error muy grave y la operación se detiene. Para
evitar este problema, debe utilizar coherentemente el mismo formato para
especificar parámetros.

Eliminación de columnas no utilizadas del enlace de salida

Después de completar la correlación, el conector elimina las columnas del enlace


de salida que no se han correlacionado. Si más tarde el trabajo hace referencia a
una de las columnas no correlacionadas, se genera un error de tiempo de
ejecución. Por ejemplo, si se especifica la sentencia SELECT COL1, COL2 FROM
TABLE1 para la etapa y el enlace de salida define las columnas COl1, COL2 y
COL3, el conector realiza las tareas siguientes:
1. Enlaza la columna COL1 de la sentencia con la columna COL1 del enlace.
2. Enlaza la columna COL2 de la sentencia con la columna COL2 del enlace.
3. Elimina la columna COL3 del enlace en tiempo de ejecución, porque COL3 no
se ha correlacionado.
Si una etapa Transformer en sentido descendente hace referencia a la COL3, el
trabajo falla en tiempo de ejecución; y la etapa Transformer genera un mensaje que
indica que la columna COL3 no se ha podido encontrar. Para corregir la condición
de error, añada una columna COL3 a la sentencia SELECT, o elimine la columna
COL3 del enlace de salida. Tenga en cuenta que en los casos siguientes, el conector
no elimina las columnas no utilizadas del enlace de salida:
v La propiedad Modalidad de lectura está establecida en PL/SQL.
v Se ha establecido la propiedad SQL anterior o SQL anterior (nodo), y la
propiedad crea la tabla a partir de la cual el conector lee posteriormente los
datos.

98 Guía de conectividad para bases de datos Oracle


Correlación de columnas que se han generado por propagación de
columnas en tiempo de ejecución

Cuando la propiedad Propagación de columnas en tiempo de ejecución se habilita


para la etapa, la correlación entre las columnas de la sentencia SELECT y las
columnas del enlace de salida únicamente se realiza por nombre, no por posición.

Expresiones SQL en sentencias SELECT y propagación de columnas


en tiempo de ejecución

Cuando la propiedad Propagación de columnas en tiempo de ejecución está


habilitada para la etapa, una sentencia SELECT contiene una expresión SQL para
un nombre de columna y no se especifica ningún alias para la columna, el conector
añade automáticamente una nueva columna al enlace y especifica un nombre de
columna que coincide con la expresión SQL.

Las reglas siguientes se aplican a la forma en que el nombre de columna se deriva


de la expresión SQL:
v Los caracteres no alfanuméricos, los caracteres de subrayado (_), los signos de
dólar ($) y los signos de libras (#) se sustituyen por un par de caracteres de
subrayado.
v El signo de dólar se sustituye por __036__.
v El signo de libra se sustituye por __035__.
v Los caracteres de espacio en blanco se ignoran.
v Si se realiza alguna sustitución de caracteres, el prefijo CC_N_ se añade al
nombre de columna, donde N es el índice de la columna de la expresión SQL de
la lista de sentencias SELECT. La primera columna de la lista de sentencias
SELECT tiene un índice 1; la segunda tiene un índice 2; etcétera.

El ejemplo siguiente ilustra cómo funciona la propagación de columnas en tiempo


de ejecución. Suponga que se habilita la propiedad Propagación de columnas en
tiempo de ejecución para la etapa, que se especifica la sentencia SELECT COL1,
RPAD (COL2, 20, '*') FROM TABLE1 en la etapa y que el enlace de salida define
dos columnas: COL 1 y COL2. Puesto que la propagación de columnas en tiempo
de ejecución está habilitada, el conector intentará encontrar coincidencias de
columnas por nombre, no por posición. La columna COL1 de la sentencia SELECT
se correlaciona con la columna COL1 del enlace de salida, pero la expresión SQL
RPAD (COL2, 20, '*') no se correlaciona con ninguna columna del enlace de salida.
Por lo tanto, el conector añade la columna siguiente al enlace:
CC_2_RPAD_COL2__20______ En el nuevo nombre de columna, se utiliza el
número 2 en el prefijo de nombre de columna porque la expresión SQL aparece
como la segunda columna en la lista de sentencias SELECT. Cada carácter no
alfanumérico (, ' *) se sustituye por dos caracteres subrayados. Los caracteres de
espacio de la expresión SQL se ignoran. Finalmente, el conector elimina la columna
COL2 del enlace de salida porque esta columna no está correlacionada.

Si la propagación de columnas en tiempo de ejecución no está habilitada, el


conector realiza la búsqueda de coincidencias por posición. En consecuencia, COL1
y COL2 permanecen en el enlace, y COL2 en el enlace representa los valores de la
expresión SQL de la sentencia SELECT. Si se utiliza el alias de columna COL2 para
la expresión SQL y la propagación de columnas en tiempo de ejecución está
habilitada, la correlación por nombre es satisfactoria, y se utilizan las dos columnas
de enlace existentes, COL2 y COL2. La sentencia SELECT en este caso es SELECT
COL1, RPAD(COL2, 20, '*') COL2 FROM TABLE1.

Capítulo 6. Conector Oracle 99


Especificación de la modalidad de lectura y el origen de datos
Para configurar el conector para leer o consultar filas en una tabla o vista Oracle,
debe especificar la tabla o vista de origen o definir una sentencia SELECT completa
o bloque PL/SQL.

Prerequisites

Complete estas tareas que son requisito previo:


v Cree un trabajo que incluya el conector Oracle y los enlaces necesarios.
v Defina una conexión con la base de datos Oracle.
v Configure las definiciones de columna en los enlaces.

About this task

Cuando establece la propiedad Modalidad de lectura en Select, hay cuatro


maneras de definir el origen de los datos:
v Especificar un nombre de tabla o vista.
v Especificar la sentencia SELECT manualmente.
v Especificar el nombre de un archivo que contiene la sentencia SELECT.
v Invocar el Creador de SQL de Oracle para crear la sentencia SELECT
automáticamente.

Cuando se establece la propiedad Modalidad de lectura en PL/SQL, hay dos


maneras de definir el origen de los datos:
v Especifique el bloque PL/SQL manualmente.
v Especifique el nombre de un archivo que contiene el bloque PL/SQL.
Cuando ejecuta el trabajo, el conector ejecuta el bloque PL/SQL especificado una
sola vez y devuelve las variables de enlace de salida que están especificadas en el
bloque PL/SQL. Un bloque PL/SQL es útil para ejecutar un procedimiento
almacenado que no toma parámetros de entrada pero que devuelve valores a
través de uno o varios parámetros de salida.

Procedure

Para configurar el conector a fin de que lea datos:


1. En el lienzo paralelo, efectúe una doble pulsación en el icono del conector
Oracle y luego seleccione el enlace de salida para editarlo.
2. Establezca Modalidad de lectura en Select o PL/SQL.
3. Si establece Modalidad de lectura en Select, utilice uno de estos métodos para
especificar el origen de los datos:
v Establezca Generar SQL en tiempo de ejecución en Sí, y luego especifique
el nombre de la tabla o vista en la propiedad Nombre de tabla. Utilice la
sintaxis nombre_esquema.nombre_tabla, donde nombre_esquema es el propietario
de la tabla. Si no especifica nombre_esquema, se utiliza el esquema que
pertenece al usuario conectado actualmente.
v Establezca Generar SQL en tiempo de ejecución en No, y luego especifique
la sentencia SELECT en la propiedad Seleccionar sentencia.
v Establezca Generar SQL en tiempo de ejecución en No, y luego especifique
el nombre de archivo calificado al completo del archivo que contiene la
sentencia SQL en la propiedad Sentencia Select. Si especifica un nombre de
archivo, también debe establecer Leer sentencia select del archivo en Sí.

100 Guía de conectividad para bases de datos Oracle


v Pulse la propiedad Sentencia Select y luego junto a la propiedad, pulse
Crear para iniciar el Creador de SQL. Para construir la sentencia SQL,
arrastre y suelte las definiciones de tabla y columna que están almacenadas
en el repositorio y elija opciones para configurar las cláusulas en la sentencia
SQL.
4. Si establece Modalidad de lectura en PL/SQL, utilice uno de estos métodos
para especificar el origen de los datos:
v Especifique manualmente el bloque PL/SQL en la propiedad Bloque
PL/SQL.
v Especifique el nombre de archivo calificado al completo que contiene el
bloque PL/SQL en la propiedad Bloque PL/SQL. Si especifica un nombre de
archivo, también debe establecer Leer bloque PL/SQL del archivo en Sí.

Nota: El bloque PL/SQL especificado debe empezar por la palabra clave


DECLARE o BEGIN, debe finalizar con la palabra clave END, y se debe
especificar un punto y coma después de la palabra clave END.

Especificación de la modalidad de grabación y la tabla de


destino
Si desea configurar el conector para grabar filas en una tabla o vista grabable
Oracle, debe especificar la tabla o vista de destino o definir las sentencias SQL o el
bloque PL/SQL.

Prerequisites

Complete estas tareas que son requisito previo:


v Cree un trabajo que incluya el conector Oracle y los enlaces necesarios.
v Defina una conexión con la base de datos Oracle.
v Configure las definiciones de columna en los enlaces.

About this task

La tabla siguiente indica las modalidades de grabación y describe las operaciones


que el conector realiza en la tabla de destino para cada modalidad de grabación.
Tabla 17. Modalidad de grabación y descripciones
Modalidad de grabación Descripción
Insertar El conector intenta insertar registros del
enlace de entrada como filas en la tabla de
destino.
Actualizar El conector intenta actualizar filas en la tabla
de destino que corresponden a los registros
que llegan en el enlace de entrada. Los
registros coincidentes se identifican por los
valores que corresponden a columnas de
enlace que están marcadas como columnas
de claves.

Capítulo 6. Conector Oracle 101


Tabla 17. Modalidad de grabación y descripciones (continuación)
Modalidad de grabación Descripción
Suprimir El conector intenta suprimir las filas de la
tabla de destino que corresponden a los
registros que llegan en el enlace de entrada.
Los registros coincidentes se identifican por
los valores que corresponden a columnas de
enlace que están marcadas como columnas
de claves.
Insertar y, a continuación, actualizar Para cada registro de entrada, el conector
primero intenta insertar el registro como una
fila nueva en la tabla de destino. Si la
operación de inserción falla debido a una
clave primaria o restricción exclusiva, el
conector actualiza la fila existente en la tabla
de destino con los valores nuevos del
registro de entrada.
Actualizar y, a continuación, insertar Para cada registro de entrada, el conector
primero intenta localizar las filas
coincidentes en la tabla de destino y
actualizarlas con los nuevos valores del
registro de entrada. Si las filas no se pueden
localizar, el conector inserta el registro como
una fila nueva en la tabla de destino.
Suprimir y, a continuación, insertar Para cada registro de entrada, el conector
primero intenta suprimir las filas
coincidentes en la tabla de destino.
Independientemente de si las filas se han
suprimido realmente o no, el conector
ejecuta la sentencia Insert para insertar el
registro como una fila nueva en la tabla de
destino.
Bloque PL/SQL Para cada registro de entrada, el conector
ejecuta el bloque PL/SQL especificado.
Carga masiva El conector utiliza el método de carga de vía
de acceso directa de Oracle para cargar
masivamente los datos.

Procedure

Para configurar el conector a fin de que grabe datos:


1. En el lienzo paralelo, efectúe una doble pulsación en el icono del conector
Oracle y seleccione el enlace de entrada para editarlo.
2. Para generar automáticamente el SQL en tiempo de ejecución, ejecute estos
pasos:
a. Establezca Generar SQL en tiempo de ejecución en Sí.
b. Establezca Modalidad de grabación en Insertar, Actualizar, Suprimir,
Insertar y, a continuación, actualizar, Actualizar y, a continuación, insertar
o Suprimir y, a continuación, insertar.
c. Especifique el nombre de la tabla de destino en la propiedad Nombre de
tabla.
3. Para especificar manualmente el SQL, siga estos pasos:
a. Establezca Generar SQL en tiempo de ejecución en No.

102 Guía de conectividad para bases de datos Oracle


b. Establezca Modalidad de grabación en Insertar, Actualizar, Suprimir,
Insertar y, a continuación, actualizar, Actualizar y, a continuación, insertar
o Suprimir y, a continuación, insertar.
c. Especifique las sentencias SQL en las propiedades que corresponden a la
modalidad de grabación seleccionada: Insertar sentencia, Actualizar
sentencia o Suprimir sentencia. Como alternativa, pulse Crear junto a cada
propiedad para iniciar el Creador de SQL. Después para crear la sentencia,
arrastre y suelte las definiciones de columna que están almacenadas en el
repositorio, y elija opciones para configurar cláusulas en la sentencia.
4. Para leer la sentencia SQL de un archivo, siga estos pasos:
a. Establezca Generar SQL en tiempo de ejecución en No.
b. Especifique el nombre calificado al completo del archivo que contiene la
sentencia SQL en la propiedad Insertar, Actualizar, Insertar y, a
continuación, actualizar, Actualizar y, a continuación, insertar o Suprimir
y, a continuación, insertar.
c. Establezca Leer sentencia insert del archivo, Leer sentencia update del
archivo o Leer sentencia delete del archivo en Sí.
5. Para especificar un bloque PL/SQL, siga estos pasos:
a. Establezca Modalidad de grabación en PL/SQL.
b. Especifique el bloque PL/SQL en la propiedad Bloque PL/SQL.

Nota: El bloque PL/SQL debe empezar por la palabra clave DECLARE o


BEGIN y finalizar por la palabra clave END. Debe incluir un carácter de
punto y coma después de la palabra clave END.
6. Para cargar datos masivamente, siga estos pasos:
a. Establezca Modalidad de grabación en Carga masiva.
b. Especifique el nombre de la tabla en la propiedad Nombre de tabla. Utilice
la sintaxis nombre_esquema.nombre_tabla, donde nombre_esquema es el
propietario de la tabla. Si no especifica nombre_esquema, se utiliza el
esquema que pertenece al usuario conectado actualmente.

Rechazo de registros que contienen errores


Cuando el conector Oracle incluye un enlace de rechazo, los registros que cumplen
con determinados criterios de rechazo especificados se direccionan
automáticamente a la etapa de destino en el enlace de rechazo, y el proceso
continúa para el resto de registros.

Prerequisites

Complete estas tareas que son requisito previo:


v Cree un trabajo que incluya el conector Oracle y los enlaces necesarios.
v Defina una conexión con la base de datos Oracle.
v Configure las definiciones de columna en los enlaces.
v Especifique la modalidad de grabación y la tabla de destino.

About this task

Cuando configure un enlace de rechazo, seleccione una o varias condiciones que


controlen cuándo se debe rechazar un registro y enviarlo a la etapa de destino que
recibe los registros rechazados. También puede elegir incluir el código de error y el
mensaje de error de Oracle que se genera cuando falla un registro. Si no define un

Capítulo 6. Conector Oracle 103


enlace de rechazo o si define un enlace de rechazo pero un registro que ha fallado
no coincide con ninguno de los criterios de rechazo, el conector informa de un
error muy grave y detiene el trabajo.

La lista siguiente describe las condiciones de rechazo que puede establecer:


Fila no actualizada
Esta condición se produce cuando el conector intenta actualizar una fila en
la tabla de destino y la operación es satisfactoria, pero no se actualizan
datos. Estas situaciones dan como resultado que la fila no se actualiza:
v Los valores de campo de clave del registro de entrada no coinciden con
los valores de la columna de claves de ninguna fila de la tabla de
destino
v Los valores de campo de clave del registro de entrada coinciden con los
valores de la columna de claves en algunas filas de la tabla de destino, y
el resto de valores de columna del registro de entrada coinciden con los
valores de la columna correspondiente en esas mismas filas.
El conector comprueba esta condición sólo cuando la propiedad
Modalidad de grabación se establece en Actualizar. Tenga en cuenta que
esta condición no tiene un código de error y mensaje de error de Oracle
correspondiente.
Fila no suprimida
Esta condición se produce cuando el conector intenta suprimir una fila en
la tabla de destino y la operación es satisfactoria, pero no se suprimen
datos. Esta situación se produce cuando los valores de campo de clave del
registro de entrada no coinciden con los valores de la columna de claves
de ninguna fila de la tabla de destino.
El conector comprueba esta condición sólo cuando la propiedad
Modalidad de grabación está establecida en Suprimir. Tenga en cuenta
que esta condición no tiene un código y mensaje de error de Oracle
correspondiente.
Error SQL – comprobación de restricción
Esta condición se produce cuando una operación no se puede completar
debido a una comprobación de restricción. Tenga en cuenta que existen
algunas situaciones en las que este error SQL no da como resultado el
envío de un registro al enlace de rechazo. Por ejemplo, cuando la
propiedad Modalidad de grabación se establece en Insertar y, a
continuación, actualizar y la operación de inserción falla debido a una
restricción de clave primaria, el conector intenta actualizar la fila, en lugar
de enviar el registro al enlace de rechazo. Sin embargo, si la operación de
actualización falla para una de las condiciones de rechazo seleccionadas, el
conector envía el registro de entrada al enlace de rechazo.
Error SQL – no coincidencia de tipo
Esta condición se produce cuando un valor de datos del registro no es
compatible con el tipo de datos de la columna correspondiente en la tabla
de destino. En este caso, Oracle no puede convertir los datos y devuelve
un error.
Error SQL – recorte de datos
Esta condición se produce cuando los tipos de datos de las columnas del
enlace son compatibles con los tipos de datos de la columna de la tabla de
destino, pero se produce una pérdida de datos debido una no coincidencia
de tamaño.

104 Guía de conectividad para bases de datos Oracle


Error SQL – conversión del juego de caracteres
Esta condición se produce cuando el registro contiene datos Unicode para
algunas de sus columnas NChar, NVarChar o LongNVarChar, y los errores
de conversión se producen cuando los datos se convierten al juego de
caracteres de base de datos especificado en el parámetro de base de datos
NLS_CHARACTERSET.
Error SQL – particionamiento
Esta condición se produce cuando el conector intenta grabar un registro en
una partición en particular en la tabla particionada, pero la partición
especificada no es la partición a la que pertenece el registro.
Error SQL – proceso XML
Esta condición se produce cuando un registro que contiene un documento
de datos XML no se puede insertar en una columna XMLType de una tabla
porque los datos XML contienen errores. Por ejemplo, si el documento
XML especificado no está formado correctamente o si el documento no es
válido en relación a su esquema XML, se produce esta condición de error.
Error SQL – otro
Esta condición abarca todos los errores SQL que no abarca explícitamente
una de las demás condiciones que se mencionan arriba.

Procedure

Para gestionar los datos rechazados:


1. Configure la etapa de destino que debe recibir los registros rechazados.
2. Pulse con el botón derecho del ratón el conector Oracle y arrastre para crear un
enlace desde el conector Oracle hasta la etapa de destino.
3. Si el enlace es el primero para el conector Oracle, pulse con el botón derecho
del ratón el enlace y elija Convertir en rechazo. Si el conector Oracle ya tiene
un enlace de entrada, el nuevo enlace se visualiza automáticamente como un
enlace de rechazo.
4. Efectúe una doble pulsación en el conector para abrir el editor de etapas y, en
el navegador, resalte el enlace de rechazo, que está representado por una línea
de guiones largos.
5. Pulse el separador Rechazar.
6. En la lista Filtrar filas rechazadas en función de las condiciones
seleccionadas, seleccione una o varias condiciones para utilizarlas para
rechazar registros. Si no elige ninguna condición, ninguna de las filas se
rechaza. En este caso, cualquier error que se produzca mientras se graban los
registros en la tabla de destino provoca una anomalía del trabajo.
7. Utilice uno de los métodos siguientes para especificar cuándo se debe detener
un trabajo debido a que se han rechazado demasiadas filas:
v En el campo Terminar anormalmente si, seleccione Porcentaje. Después en
el campo Terminar anormalmente si (%), especifique el porcentaje de filas
rechazadas que causarán que se detenga el trabajo. En el campo Iniciar
recuento tras (filas), especifique el número de filas de entrada que se deben
procesar antes de calcular el porcentaje de filas rechazadas.
v En el campo Terminar anormalmente si, seleccione Filas. Después en el
campo Terminar anormalmente después de (filas), especifique el número
máximo de filas de rechazo permitidas antes de que se detenga el trabajo.
8. Opcional: En la lista Añadir a fila de rechazo, seleccione ERRORCODE,
ERRORMESSAGE o ambos. Después, cuando falla un registro, el registro
rechazado incluye el código de error de Oracle y el mensaje correspondiente

Capítulo 6. Conector Oracle 105


que describe la anomalía. Para ver una lista completa de códigos y mensajes de
error de Oracle, consulte la documentación de Oracle.

Compilación y ejecución de un trabajo


Cuando finalice el diseño de un trabajo, debe compilarlo y ejecutarlo. Utilice el
archivo de registro para recopilar información que le ayude a ajustar la
configuración del trabajo o corregir condiciones de error.

About this task

Después de compilar un trabajo, puede utilizar IBM InfoSphere DataStage and


QualityStage Administrator Designer client o Director client para ejecutarlo.

Procedure

Para compilar y ejecutar un trabajo:


1. En el Designer client, abra el trabajo de que desee compilar.
2. Pulse Compilar.
3. Si en el área Estado de la compilación aparecen errores, edite el trabajo para
resolver los errores. Una vez resueltos los errores, pulse Compilar de nuevo.
4. Cuando el trabajo se compile satisfactoriamente, pulse Ejecutar y especifique
las opciones de ejecución del trabajo:
a. Especifique los parámetros del trabajo, según proceda.
b. Pulse el botón Validar para comprobar la configuración del trabajo sin leer
ni grabar realmente ningún dato.
c. Pulse el botón Ejecutar para leer, escribir o consultar datos.
5. Visualice el estado del trabajo:
a. Abra el Director client.
b. En la columna Estado, verifique que el trabajo se haya validado y
completado satisfactoriamente. Si el trabajo o la validación han fallado,
seleccione Ver → Registro para ver los mensajes que describen los problemas
de tiempo de ejecución.
6. Si el trabajo tiene problemas de tiempo de ejecución, arregle los problemas,
recompile, valide y ejecute el trabajo hasta que se complete satisfactoriamente.

Opciones para la lectura y grabación de datos


Utilice estas opciones para modificar la forma en que el conector lee y graba datos.

Control del nivel de aislamiento de transacciones


Puede configurar el nivel de aislamiento de transacciones.

About this task

En cuanto el conector establece una conexión con la base de datos Oracle y emite
la primera sentencia transaccional, el conector inicia implícitamente una
transacción que utiliza el nivel de aislamiento especificado. Cuando la transacción
finaliza, mediante una confirmación o una retrotracción, y el conector emite la
siguiente sentencia transaccional, el conector vuelve a iniciar implícitamente una
nueva transacción en la conexión. Todas las operaciones que el conector realiza en
la base de datos forman parte de la transacción actual. Tenga en cuenta que Oracle

106 Guía de conectividad para bases de datos Oracle


no puede retrotraer algunas operaciones de base de datos, aunque la transacción a
la que pertenezcan se retrotraiga. Por ejemplo, las operaciones DDL no se pueden
retrotraer.

Procedure

Para configurar transacciones, establezca la propiedad Nivel de aislamiento en


uno de los siguientes:

Opción Descripción
Lectura confirmada Cada sentencia SELECT que se ejecuta
dentro de la transacción ve las filas que se
han confirmado cuando se ha iniciado la
sentencia actual.
Serializable Cada sentencia SELECT que se ejecuta
dentro de la transacción sólo ve las filas que
se han confirmado cuando se ha iniciado la
transacción.
Sólo lectura El aislamiento de sólo lectura funciona de la
misma manera que el aislamiento
serializable, excepto en que las sentencias
DML INSERT, UPDATE, DELETE y MERGE
no están permitidas en la transacción. Este
nivel de aislamiento impide que el bloque
PL/SQL ejecute sentencias DML. Sin
embargo, tenga en cuenta que si el bloque
PL/SQL sustituye el nivel de aislamiento, el
bloque puede ejecutar sentencias DML,
aunque establezca el nivel de aislamiento en
Sólo lectura.

Configuración de la captación previa de filas


Si configura la captación previa de filas, cuando se ejecuta una sentencia SELECT,
el conector capta el número de filas especificado por la propiedad Tamaño de
matriz más el número de filas especificado en la propiedad Recuento de filas de
captación previa.

Puede establecer la propiedad Recuento de filas de captación previa, la propiedad


Tamaño de almacenamiento intermedio de captación previa, o establecer ambas
propiedades. Si establece ambas propiedades en un valor mayor que 0, el cliente
Oracle primero intenta captar previamente el número de filas especificado para la
propiedad Recuento de filas de captación previa. Si el número de filas no puede
caber en el tamaño de memoria especificado para la propiedad Tamaño de
almacenamiento intermedio de captación previa, el cliente Oracle capta
previamente tantas filas como puedan caber en el almacenamiento intermedio.

El cliente Oracle proporciona inmediatamente las filas que se captan previamente


al Tamaño de matriz para el conector. El cliente Oracle coloca en memoria caché
las filas captadas previamente para Recuento de filas de captación previa a fin de
que el conector continúe solicitando datos para la sentencia SELECT que se ejecuta
actualmente, las solicitudes de captación previa se optimizan.

De forma predeterminada, el conector está configurado para la captación previa de


una fila.

Capítulo 6. Conector Oracle 107


Procedure

Para configurar la captación previa de filas de Oracle, establezca una o ambas


propiedades siguientes:
v Establezca Recuento de filas de captación previa en el número de filas de
captación previa para cada solicitud de captación previa que resulte en una ida y
vuelta del servidor Oracle.
v Establezca Tamaño de almacenamiento intermedio de captación previa en el
tamaño en KB que se debe utilizar como almacenamiento intermedio para las
filas que se han captado previamente.

Establecimiento del tamaño de matriz


Para controlar el número de registros que se deben captar de una base de datos o
grabar en ella a la vez, aumente o reduzca el tamaño de matriz.

About this task

Las propiedades Tamaño de matriz y Recuento de registros se establecen a la vez.


El tamaño de matriz especifica el número de registros que se deben incluir en cada
lote que las operaciones de lectura y grabación de la base de datos procesan. El
recuento de registros especifica el número de registros que se deben procesar en
cada transacción.

Si configura la captación previa de filas, cuando se ejecuta la sentencia SELECT, el


conector capta el número de filas especificado por la propiedad Tamaño de matriz
más el número de filas especificado por la propiedad Recuento de filas de
captación previa.

Procedure

Para establecer el tamaño de matriz:


1. Establezca Tamaño de matriz en un número entre 1 y 999.999.999. El valor
predeterminado es 2.000.
2. Establezca Recuento de registros en el número de registros que se deben
procesar antes de que el conector confirme la transacción actual. El valor
predeterminado es 2.000.El valor que especifique debe ser un número entre 0 y
999.999.999 y ser un múltiplo del valor que especifique para la propiedad
Tamaño de matriz. Si especifica 0, el conector procesa todos los registros antes
de confirmar la transacción.
3. Opcional: Utilice la propiedad Marcar final de oleada para especificar si se
debe insertar o no un marcador de fin de oleada después especificar el número
de registros en la propiedad Recuento de registros. De forma predeterminada,
los marcadores de fin de oleada no se insertan.

Nota: Cuando se inserta el marcador de fin de oleada, los registros que el


conector haya colocado en almacenamiento intermedio se liberan del mismo y
se transmiten al flujo de trabajo para que las etapas en sentido descendente
puedan procesarlos.

Propagación de columnas en tiempo de ejecución


Cuando la propiedad Propagación de columnas en tiempo de ejecución está
habilitada para la etapa, el conector busca la coincidencia de columnas de la
sentencia SELECT y las columnas del enlace de salida por nombre, no por
posición.

108 Guía de conectividad para bases de datos Oracle


Establezca Propagación de columnas en tiempo de ejecución en Sí.
Después de completar la correlación, el conector elimina las columnas del enlace
de salida que no se han correlacionado. Si más tarde el trabajo hace referencia a
una de las columnas no correlacionadas, se genera un error de tiempo de
ejecución. Por ejemplo, si se especifica la sentencia SELECT COL1, COL2 FROM
TABLE1 para la etapa y el enlace de salida define las columnas COl1, COL2 y
COL3, el conector realiza las tareas siguientes:
1. Enlaza la columna COL1 de la sentencia con la columna COL1 del enlace.
2. Enlaza la columna COL2 de la sentencia con la columna COL2 del enlace.
3. Elimina la columna COL3 del enlace en tiempo de ejecución, porque COL3 no
se ha correlacionado.
Si una etapa Transformer en sentido descendente hace referencia a la COL3, el
trabajo falla en tiempo de ejecución; y la etapa Transformer genera un mensaje que
indica que la columna COL3 no se ha podido encontrar. Para corregir la condición
de error, añada una columna COL3 a la sentencia SELECT, o elimine la columna
COL3 del enlace de salida. Tenga en cuenta que en los casos siguientes, el conector
no elimina las columnas no utilizadas del enlace de salida:
v La propiedad Modalidad de lectura está establecida en PL/SQL.
v Se ha establecido la propiedad SQL anterior o SQL anterior (nodo), y la
propiedad crea la tabla a partir de la cual el conector lee posteriormente los
datos.
Cuando la propiedad Propagación de columnas en tiempo de ejecución está
habilitada para la etapa, una sentencia SELECT contiene una expresión SQL para
un nombre de columna y no se especifica ningún alias para la columna, el conector
añade automáticamente una nueva columna al enlace y especifica un nombre de
columna que coincide con la expresión SQL.
Las reglas siguientes se aplican a la forma en que el nombre de columna se deriva
de la expresión SQL:
v Los caracteres no alfanuméricos, los caracteres de subrayado (_), los signos de
dólar ($) y los signos de libras (#) se sustituyen por un par de caracteres de
subrayado.
v El signo de dólar se sustituye por __036__.
v El signo de libra se sustituye por __035__.
v Los caracteres de espacio en blanco se ignoran.
v Si se realiza alguna sustitución de caracteres, el prefijo CC_N_ se añade al
nombre de columna, donde N es el índice de la columna de la expresión SQL de
la lista de sentencias SELECT. La primera columna de la lista de sentencias
SELECT tiene un índice 1; la segunda tiene un índice 2; etcétera.
El ejemplo siguiente ilustra cómo funciona la propagación de columnas en tiempo
de ejecución. Suponga que se habilita la propiedad Propagación de columnas en
tiempo de ejecución para la etapa, que se especifica la sentencia SELECT COL1,
RPAD (COL2, 20, '*') FROM TABLE1 en la etapa y que el enlace de salida define
dos columnas: COL 1 y COL2. Puesto que la propagación de columnas en tiempo
de ejecución está habilitada, el conector intenta buscar la coincidencia de columnas
únicamente por el nombre, no por la posición. La columna COL1 de la sentencia
SELECT se correlaciona con la columna COL1 del enlace de salida, pero la
expresión SQL RPAD (COL2, 20, '*') no se correlaciona con ninguna columna del
enlace de salida. Por lo tanto, el conector añade la columna siguiente al enlace:
CC_2_RPAD_COL2__20______ En el nuevo nombre de columna, se utiliza el
número 2 en el prefijo de nombre de columna porque la expresión SQL aparece
como la segunda columna en la lista de sentencias SELECT. Cada carácter no
alfanumérico (, ' *) se sustituye por dos caracteres subrayados. Los caracteres de

Capítulo 6. Conector Oracle 109


espacio de la expresión SQL se ignoran. Finalmente, el conector elimina la columna
COL2 del enlace de salida porque esta columna no está correlacionada.
Si la propagación de columnas en tiempo de ejecución no está habilitada, el
conector realiza la búsqueda de coincidencias por posición. En consecuencia, COL1
y COL2 permanecen en el enlace, y COL2 en el enlace representa los valores de la
expresión SQL de la sentencia SELECT. Si se utiliza el alias de columna COL2 para
la expresión SQL y la propagación de columnas en tiempo de ejecución está
habilitada, la correlación por nombre es satisfactoria, y se utilizan las dos columnas
de enlace existentes, COL2 y COL2. La sentencia SELECT en este caso es SELECT
COL1, RPAD(COL2, 20, '*') COL2 FROM TABLE1.
Cuando el conector Oracle añade dinámicamente una columna al enlace en tiempo
de ejecución en un trabajo que tiene la propiedad Propagación de columnas en
tiempo de ejecución habilitada y la columna del enlace corresponde a la columna
de tabla LONG o LONG RAW en la base de datos, el conector establece la
longitud de las columnas de enlace en el valor máximo posible que satisface estas
dos condiciones:
v El valor no excede de 999999.
v Cuando el valor se multiplica por el valor especificado en la propiedad Tamaño
de matriz para la etapa, el producto no excede de 10485760 (el número de bytes
en 10 MB).

Cómo descartar campos que no coinciden


Para especificar cómo se deben manejar las columnas no utilizadas en el enlace de
entrada, utilice la propiedad Descartar campos que no coincidan.

Al crear un trabajo que graba datos del enlace de entrada en la base de datos,
puede utilizar la propiedad Descartar campos que no coincidan para controlar
cómo se manejan las columnas (campos) no utilizadas en el enlace de entrada. Las
columnas no utilizadas en el enlace de entrada son las columnas que el conector
no ha emparejado con ningún parámetro en la sentencia SQL o PL/SQL de
destino, o si Carga masiva se ha especificado como Modalidad de grabación, con
cualquier columna de tabla de destino.

Para la propiedad Descartar campos que no coincidan, elija Sí (valor


predeterminado) o No.
Si elige Sí, el conector descarta cualquier columna no utilizada en el enlace de
entrada. Para cada columna descartada, el conector graba un mensaje informativo
en el registro de trabajo para indicar que la columna y sus valores asociados se han
omitido. Cuando la propiedad Descartar campos que no coincidan se establece en
No, el conector registra un mensaje de error muy grave y detiene el trabajo cuando
encuentra una columna no utilizada en el enlace de entrada.
La propiedad Habilitar identificadores con comillas se utiliza para especificar si la
coincidencia de nombres entre las columnas de enlace de entrada y los parámetros
SQL de destino o las columnas de tabla distingue entre mayúsculas y minúsculas o
no.
En el siguiente ejemplo se describe un trabajo y se ilustran los efectos de establecer
la propiedad Descartar campos que no coincidan y la propiedad Habilitar
identificadores con comillas:
v La etapa del conector se configura para utilizar Carga masiva como Modalidad
de grabación.
v La tabla de destino de la base de datos contiene estas columnas: FIRSTNAME,
LASTNAME y DATEOFBIRTH.
v El enlace de entrada del conector contiene estas columnas: FirstName,
LastName, Address, DateofBirth, Phone y Email.

110 Guía de conectividad para bases de datos Oracle


Los resultados difieren, según cómo establezca las propiedades:
v Si establece Descartar campos que no coincidan en Sí y establece Habilitar
identificadores con comillas en No, el conector registra mensajes informativos
para indicar que las columnas Address, Phone y Email del enlace de entrada no
se utilizan. El conector únicamente carga los datos proporcionados para las
columnas del enlace de entrada FirstName, LastName y DateofBirth.
v Si establece Descartar campos que no coincidan en No y establece Habilitar
identificadores con comillas en No, el conector registra un error muy grave
para indicar que la columna Address del enlace de entrada no se utiliza, y el
trabajo se detiene.
v Si establece Descartar campos que no coincidan en No y establece Habilitar
identificadores con comillas en Sí, el conector registra un mensaje muy grave
para indicar que la columna FirstName del enlace de entrada no se utiliza y el
trabajo se detiene.

Realización de acciones en la tabla antes de grabar


Como opción, puede configurar el conector para que realice las acciones crear,
sustituir y truncar en una tabla en tiempo de ejecución. Estas acciones se realizan
antes de grabar cualquier dato en la tabla.

About this task

La propiedad Acción en tabla controla las acciones que el conector realiza en


tiempo de ejecución antes de grabar datos en una tabla. De forma predeterminada,
la propiedad se establece en Anexar, y no se realiza ninguna acción en la tabla.

Procedure

Para realizar acciones en una tabla antes de grabar datos en ella:


1. Para crear una tabla en tiempo de ejecución, siga estos pasos:
a. Establezca Acción en tabla en Crear.
b. Utilice uno de estos métodos para especificar la sentencia CREATE TABLE:
v Establezca Generar sentencia Create table en tiempo de ejecución en Sí
y especifique el nombre de la tabla que se va a crear en la propiedad
Nombre de tabla. En este caso, el conector genera automáticamente la
sentencia CREATE TABLE a partir de las definiciones de columna del
enlace de entrada. Los nombres de columna de la nueva tabla coinciden
con los nombres de columna del enlace. Los tipos de datos de las
columnas de la nueva tabla se correlacionan con las definiciones de
columna del enlace.
v Especifique la sentencia CREATE TABLE en la propiedad Sentencia
Create table.
2. Para sustituir una tabla en tiempo de ejecución, siga estos pasos:
a. Establezca Acción en tabla en Sustituir.
b. Utilice uno de estos métodos para especificar la sentencia DROP TABLE:
v Establezca Generar sentencia Drop table en tiempo de ejecución en Sí, e
introduzca el nombre de la tabla que se tiene que descartar en la
propiedad Nombre de tabla.
v Especifique la sentencia DROP TABLE en la propiedad Sentencia Drop
table.
c. Utilice uno de estos métodos para especificar la sentencia CREATE TABLE:

Capítulo 6. Conector Oracle 111


v Establezca Generar sentencia Create table en tiempo de ejecución en Sí,
y especifique el nombre de la tabla que se debe crear en la propiedad
Nombre de tabla.
v Especifique la sentencia CREATE TABLE en la propiedad Sentencia
Create table.
3. Para truncar una tabla en tiempo de ejecución, siga estos pasos:
a. Establezca Acción en tabla en Truncar.
b. Utilice uno de estos métodos para especificar la sentencia TRUNCATE
TABLE:
v Establezca Generar sentencia Truncate table en tiempo de ejecución en
Sí, y especifique el nombre de la tabla que se debe truncar en la
propiedad Nombre de tabla.
v Especifique la sentencia TRUNCATE TABLE en la propiedad Sentencia
Truncate table.
4. Para que un trabajo falle cuando falla una sentencia, establezca Finalización
anómala si hay error para sentencia [create, truncate, drop] en Sí. Después
cuando la sentencia falle, el trabajo se detendrá. De lo contrario, cuando la
sentencia falla, el conector registra un mensaje de aviso y el trabajo continúa.

Ejecución de una sentencia SQL antes o después de procesar


datos
Configure el conector para que ejecute una sentencia SQL una vez antes o después
de procesar los datos de un trabajo o para ejecutar una sentencia SQL una vez
antes o después de procesar los datos de cada nodo.

About this task

La ejecución de una sentencia SQL antes o después de procesar datos es útil


cuando es necesario realizar operaciones que preparen objetos de base de datos
para el acceso a los datos. Por ejemplo, puede utilizar una sentencia SQL para
crear una tabla de destino y añadir un índice a la misma. La sentencia SQL que
especifica se ejecuta una vez para todo el trabajo, antes de procesar datos.

Después de ejecutar la sentencia especificada en las propiedades Sentencia SQL


anterior o Sentencia SQL posterior, el conector confirma explícitamente la
transacción actual. Por ejemplo, si especifica una sentencia DML, por ejemplo,
INSERT, UPDATE, DELETE o MERGE, en la propiedad Sentencia SQL anterior,
los resultados de la sentencia DML están visibles en los nodos individuales.

Para ejecutar una sentencia SQL en cada nodo en el que el conector está
configurado para ejecutarse, utilice las propiedades Sentencia SQL anterior (nodo)
o Sentencia SQL posterior (nodo). El conector ejecuta la sentencia SQL
especificada una vez antes de procesar datos en cada nodo o una vez después de
procesar datos en cada nodo. Por ejemplo, para establecer el formato de datos que
se debe utilizar para la sesión cliente en un nodo, se especifica la sentencia ALTER
SESSION en la propiedad SQL anterior (nodo).

Después de ejecutar la sentencia que se ha especificado en las propiedades


Sentencia SQL anterior (nodo) o Sentencia posterior (nodo), el conector confirma
explícitamente la transacción actual.

112 Guía de conectividad para bases de datos Oracle


Procedure

Se utiliza el mismo procedimiento básico para configurar las propiedades


Sentencia SQL anterior, Sentencia SQL posterior, Sentencia SQL anterior (nodo)
y Sentencia SQL posterior (nodo). Los pasos siguientes describen cómo configurar
la propiedad Sentencia SQL anterior.

Para ejecutar una sentencia SQL antes de procesar datos, complete estos pasos:
1. Establezca Ejecutar sentencias SQL anterior y posterior en Sí.
2. En la propiedad Sentencia SQL anterior, especifique la sentencia SQL o
PL/SQL, o especifique la vía de acceso calificada al completo para el archivo
que contiene la sentencia SQL o PL/SQL.

Nota: No incluya las variables de enlace de entrada ni las variables de enlace


de salida en la sentencia SQL o PL/SQL. Si la sentencia contiene estos tipos de
variables, el conector registra un mensaje muy grave y la operación se detiene.
Si especifica un nombre de archivo, el archivo debe estar en el sistema en el
que el servidor IBM InfoSphere DataStage está instalado.
3. Si especifica un nombre de archivo, establezca Leer sentencia SQL anterior del
archivo en Sí.
4. Establezca Finalización anómala si hay error para sentencia SQL anterior en
Sí (valor predeterminado) o en No. Si esta propiedad se establece en Sí y la
sentencia SQL o PL/SQL falla, el conector registra un mensaje muy grave y el
trabajo se detiene. De lo contrario, el conector registra un mensaje de aviso y el
trabajo continúa.

Sustitución de marcadores por números de nodo


Para configurar el conector a fin de que haga referencia a los números de nodos en
los bloques SQL y PL/SQL definidos por el usuario, defina las variables de
entorno CC_ORA_NODE_USE_PLACEHOLDER y
CC_ORA_NODE_PLACEHOLDER_NAME.

About this task

Después de definir estas dos variables de entorno y convertirlas en parámetros del


trabajo, cada vez que el conector detecte un marcador en una sentencia SQL o
bloque PL/SQL definidos por el usuario, el conector sustituye el número de nodo
actual para el marcador. El conector asigna 0 al primer nodo, y asigna 1 al segundo
nodo de proceso, etcétera.

Después de configurar la sustitución del número de nodo, puede configurar el


conector para que ejecute una sentencia diferente en cada nodo. Tenga en cuenta
que la sustitución sólo se aplica a las sentencias SQL que especifique para estas
propiedades:
v Sentencia Select
v Sentencia Insert
v Sentencia Update
v Sentencia Delete
v Bloque PL/SQL
v Sentencia SQL anterior (nodo)
v Sentencia SQL posterior (nodo)

Procedure

Capítulo 6. Conector Oracle 113


Para configurar el conector, sustituya los marcadores de nodos por los números de
nodo reales en tiempo de ejecución:
1. Establezca la variable de entorno CC_ORA_NODE_USE_PLACEHOLDER en
TRUE.
2. Establezca la variable de entorno CC_ORA_NODE_PLACEHOLDER_NAME en
el nombre de marcador de nodo que utilizará en las sentencias SQL o bloques
PL/SQL definidos por el usuario.
3. Incluya las variables de entorno CC_ORA_NODE_PLACEHOLDER_NAME y
CC_ORA_NODE_USE_PLACEHOLDER como parámetros para el trabajo.

En este ejemplo, dos nodos insertan datos en dos tablas diferentes. Para este
ejemplo, supondremos lo siguiente:
v El conector está configurado para grabar datos en una tabla de base de datos.
v La propiedad Modalidad de grabación está establecida en PL/SQL.
v El conector está configurado para ejecutarse en dos nodos.
v La propiedad Tipo de partición está establecida en Entero para que todos los
registros de entrada se envíen a todos los nodos y no tenga lugar el
particionamiento.
v La variable de entorno CC_ORA_NODE_USE_PLACEHOLDER está establecida
en TRUE, y la variable de entorno CC_ORA_NODE_PLACEHOLDER_NAME
está establecida en DSNODENUM para que el conector sustituya el número de
nodo actual para cada aparición de DSNODENUM.

La propiedad PL/SQL contiene este valor:


BEGIN IF DSNODENUM = 0 THEN
INSERT INTO TABLE1 VALUES (:COL1, :COL2);
ELSE
IF DSNODENUM = 1 THEN
INSERT INTO TABLE2 VALUES (:COL1, :COL2);
END IF;END;

En el primer nodo, que es el nodo 0, el bloque PL/SQL ejecuta:


BEGIN IF 0 = 0 THEN
INSERT INTO TABLE1 VALUES (:COL1, :COL2);
ELSE
IF 0 = 1 THEN
INSERT INTO TABLE2 VALUES (:COL1, :COL2);
END IF;END;

Este bloque PL/SQL genera los mismos resultados que esta sentencia:
INSERT INTO TABLE1 VALUES (:COL1, :COL2);

En el nodo de proceso, que es el nodo 1, este bloque PL/SQL ejecuta:


BEGIN IF 1 = 0 THEN
INSERT INTO TABLE1 VALUES (:COL1, :COL2);
ELSE
IF 1 = 1 THEN
INSERT INTO TABLE2 VALUES (:COL1, :COL2);
END IF;END;

Este bloque PL/SQL genera los mismos resultados que esta sentencia:
INSERT INTO TABLE2 VALUES (:COL1, :COL2);

114 Guía de conectividad para bases de datos Oracle


Opciones para los datos de carga masiva
Establezca las opciones para gestionar restricciones, desencadenantes e índices; y
configure la utilización de la memoria caché de fechas y el registro de rehacer.

Gestión de restricciones de tabla y desencadenantes para una


carga masiva
Durante una carga masiva, la imposición de restricciones de tabla y
desencadenantes puede dar lugar a una sobrecarga adicional de E/S e impedir una
operación de carga satisfactoria. Para evitar estos problemas, inhabilite las
restricciones y desencadenantes de Oracle antes de una carga masiva.

Prerequisites

Realice estas tareas que son requisito previo:


v Configure el conector Oracle para que realice una carga masiva.
v Para utilizar una tabla de excepciones que ya existe en la base de datos, obtenga
el nombre de la tabla.

Al configurar el conector para inhabilitar las restricciones antes de cargar los datos,
el conector inhabilita las restricciones y registra un mensaje acerca de esta acción.
Si la inhabilitación de algunas de las restricciones falla, el conector registra un
mensaje de error y el trabajo se detiene.

Al configurar el conector para habilitar las restricciones después de cargar datos, el


conector habilita las restricciones y registra un mensaje sobre esta acción. El
conector almacena los valores de ROWID de cualquier fila que infrinja las
restricciones de la tabla de excepciones que especifique.

Si no especifica una tabla de excepciones, se producen las siguientes situaciones:


v El conector intenta habilitar la restricción pero no puede recopilar el valor de
ROWID para cada fila que infringe la restricción.
v No puede configurar el conector para que suprima automáticamente las filas que
infrinjan la restricción.
v Si define un enlace de rechazo y elige la condición Error SQL - infracción de
restricción para el enlace de rechazo, el trabajo falla y se visualiza el mensaje
IIS-CONN-ORA-001058, que indica que se necesita una tabla de excepciones.

El formato de la tabla de excepciones se especifica en los scripts utlexcpt.sql y


utlexcpt1.sql, que están en el directorio de instalación de Oracle. Por ejemplo,
para las instalaciones en Microsoft Windows, los scripts se encuentran en el
directorio %ORACLE_HOME%\RDBMS\ADMIN. El script utlexcpt.sql define el formato
para las tablas de excepciones que aceptan los valores de ROWID físicos que las
tablas convencionales utilizan. El script utlexcpt1.sql define el formato para las
tablas de excepciones que aceptan los valores de ROWID universales (UROWID),
que tanto las tablas convencionales como las organizadas por índice utilizan.

Cuando una base de datos ya tiene una tabla de excepciones, la tabla debe utilizar
el formato especificado en uno de los dos scripts que corresponden al tipo de la
tabla de destino; de lo contrario, el conector informa de un error muy grave acerca
del formato de la tabla y el trabajo se detiene. Si la base de datos aún no tiene una
tabla de excepciones, el conector utiliza el formato correcto para crear una.

Capítulo 6. Conector Oracle 115


Al configurar el conector para inhabilitar los desencadenantes antes de cargar
datos, el conector inhabilita los desencadenantes y registra un mensaje sobre esta
acción. Si la inhabilitación de algunos de los desencadenantes falla, el conector
registra un mensaje de error, y el trabajo falla. El conector utiliza un proceso
similar para habilitar los desencadenantes después de la carga de los datos.

Procedure

Para inhabilitar y habilitar las restricciones y desencadenantes:


1. Para inhabilitar y habilitar las restricciones, complete estos pasos:
a. Establezca Ejecutar operaciones antes de la carga masiva en Sí.
b. Establezca Inhabilitar restricciones en Sí.
c. Establezca Ejecutar operaciones después de la carga masiva en Sí.
d. Establezca Habilitar restricciones en Sí.
e. Especifique el nombre de la tabla de excepciones en la propiedad Nombre
de tabla de excepciones. Si la tabla de excepciones no existe, el conector la
crea. Si la tabla de excepciones ya existe, el conector suprime los datos que
están en la tabla y luego los utiliza.
f. Establezca Procesar filas de excepciones en Sí. Cuando Procesar filas de
excepciones se establece en Sí, el conector suprime de la tabla de destino las
filas que no pasan las comprobaciones de restricciones. Si ha definido un
enlace de rechazo para el conector y ha habilitado la condición de rechazo
Error SQL - comprobación de restricción, el conector envía las filas
suprimidas al enlace de rechazo. Si Procesar filas de excepciones se ha
establecido en No y algunas filas no pasan una comprobación de restricción,
el trabajo se detiene.
2. Para inhabilitar y habilitar desencadenantes, complete estos pasos:
a. Establezca Ejecutar operaciones antes de la carga masiva en Sí.
b. Establezca Inhabilitar desencadenantes en Sí.
c. Establezca Ejecutar operaciones después de la carga masiva en Sí.
d. Establezca Habilitar desencadenantes en Sí.

Configuración de la memoria caché de fechas de Oracle para


una carga masiva
Cuando se cargan datos masivamente en tablas que contienen columnas DATE o
TIMESTAMP, la configuración de la memoria caché de fechas de Oracle puede
mejorar el rendimiento de la carga.

About this task

Si la memoria caché de fechas está habilitada, el conector registra las estadísticas


del uso de memoria caché de fechas cuando la carga masiva se completa. Puede
utilizar las estadísticas para determinar si un cambio de tamaño de memoria caché
de fechas puede mejorar el futuro rendimiento de la carga de conjuntos de datos
de entrada similares. El conector registra estas estadísticas:
v Tamaño de la memoria caché.
v Número de elementos que se almacenan en la memoria caché.
v Número total de aciertos, que se producen cuando se encuentran coincidencias
en la memoria caché.

116 Guía de conectividad para bases de datos Oracle


v Número total de desaciertos, que se producen cuando no se encuentran
coincidencias en la memoria caché. Tenga en cuenta que el conector no cuenta
los desaciertos hasta que la memoria caché está llena.
v Información sobre si la memoria caché se ha inhabilitado durante la carga
masiva.

Procedure

Para configurar la memoria caché de fechas:


1. Establezca Utilizar memoria caché de fechas Oracle en Sí.
2. En la propiedad Tamaño de memoria caché, especifique el número máximo de
entradas que la memoria caché almacena. El valor predeterminado es 1.000.
3. Establezca Inhabilitar la memoria caché cuando esté llena en Sí. Cuando el
número de entradas en la memoria caché alcance el número especificado en la
propiedad Tamaño de memoria caché y la siguiente búsqueda en la memoria
caché dé como resultado un desacierto, la memoria caché se inhabilitará.

Gestión de índices
Especifique cómo se deben controlar los índices de tablas durante una carga
masiva y cómo se deben recrear los índices después de que se complete la carga
masiva.

About this task

Puede configurar el conector para que mantenga los índices durante la carga
masiva o para que los recree después de una carga masiva. Cuando configure el
conector para que recree los índices, si establece la propiedad Finalización
anómala si hay error para la recreación del índice en Sí y algunos de los índices
no pueden recrearse, el conector registra un mensaje de error y el trabajo se
detiene. De lo contrario, el conector registra un mensaje de aviso y el trabajo
continúa.

Al recrear índices, puede especificar valores para el paralelismo y para la


generación del registro de rehacer de Oracle y el registro de rehacer de
invalidación de Oracle. Para obtener más información sobre estos conceptos,
consulte la documentación de Oracle.

Procedure

Para gestionar índices:


1. Para controlar cómo manejar los índices de tabla durante una carga masiva,
establezca la propiedad Opción de mantenimiento de índice en uno de los
valores siguientes:

Opción Descripción
No saltar no utilizables Al cargar filas en la tabla, el conector intenta
mantener los índices. Si un índice de la tabla
está en estado no utilizable, la carga masiva
falla.

Capítulo 6. Conector Oracle 117


Opción Descripción
Saltar no utilizables El conector se salta los índices que están en
un estado no utilizable y mantiene los
índices que están en estado utilizable.
Nota: Cuando realiza una carga masiva en
una tabla particionada que tiene un índice
global definido, la carga masiva falla.
Saltar todo El conector salta todos los índices. Cualquier
índice que sea utilizable antes de la carga se
marca como no utilizable después de la
carga.

2. Para recrear índices después de la carga masiva, complete estos pasos:


a. Establezca Realizar operaciones después de la carga masiva en Sí.
b. Establezca Recrear índices en Sí.
c. Opcional: Para incluir una cláusula paralela en la sentencia ALTER INDEX
cuando se recrea el índice, seleccione uno de los valores siguientes para la
propiedad Cláusula paralela:
v Seleccione No incluir para no incluir ninguna cláusula paralela y utilizar
el valor existente para el índice.
v Seleccione NOPARALLEL para inhabilitar el paralelismo. En este caso, el
acceso al segmento de índice está serializado.
v Seleccione PARALLEL para habilitar el paralelismo para reconstruir el
índice y para todas las consultas subsiguientes y sentencias DML que se
ejecutan en el segmento de índice. Como opción, para la propiedad
Grado de paralelismo, especifique un número que represente el grado de
paralelismo que se debe utilizar en la cláusula paralela. Si deja la
propiedad en blanco, el cliente Oracle calcula automáticamente el grado
de paralelismo óptimo.
d. Opcional: Para incluir una cláusula de registro en la sentencia ALTER
INDEX cuando se recrea el índice, seleccione uno de los siguientes valores
para la propiedad Cláusula de registro:
v Seleccione No incluir para no incluir ninguna cláusula de registro y para
utilizar el valor existente para el índice.
v Seleccione NOLOGGING para inhabilitar el registro para el registro de
rehacer.
v Seleccione LOGGING para habilitar el registro en el registro de rehacer.
e. Opcional: Para detener la recreación del índice si falla la sentencia de
recreación del índice, establezca Finalización anómala si hay error para la
recreación de índice en Sí. Si una recreación de índice falla, el conector
registra un mensaje muy grave.

Control de la carga masiva de registros


Para controlar cuándo el conector carga masivamente registros del almacenamiento
intermedio en una tabla de destino, establezca un tamaño de matriz y un tamaño
de almacenamiento intermedio.

About this task

El conector siempre intenta cargar datos por fragmentos, donde cada fragmento
contiene el número de filas que se especifican en la propiedad Tamaño de matriz.
La propiedad Tamaño de almacenamiento intermedio controla el tamaño máximo

118 Guía de conectividad para bases de datos Oracle


del almacenamiento intermedio que contiene cada fragmento de registro. De forma
predeterminada, el tamaño de almacenamiento intermedio es 1.024 KB.

Basándose en los tipos y longitudes de las columnas que están definidas en el


enlace de entrada, el conector calcula si el tamaño de matriz especificado puede
caber siempre en el tamaño de almacenamiento intermedio especificado. Si el
tamaño de almacenamiento intermedio es demasiado pequeño para acomodar el
número de registros especificado para el tamaño de matriz, el conector restablece
automáticamente el tamaño de la matriz en el número máximo de registros que
caben en el almacenamiento intermedio.

Cuando una etapa en sentido ascendente proporciona registros para el conector


Oracle en forma de oleadas, cada oleada incluye un marcador de fin de oleada,
que es un registro especial que significa el final de la oleada. En este caso, el
tamaño de matriz se aplica a cada oleada de registros independiente. Si no hay
suficientes registros para llenar el almacenamiento intermedio hasta el valor de
tamaño de matriz especificado, el conector carga el almacenamiento intermedio
incompleto de registros como un lote y luego procesa la siguiente oleada de
registros. Cuando los registros no llegan en oleadas, sino que llegan todos en una
sola oleada, el tamaño de la matriz se aplica a esta única oleada.

Procedure

Para controlar la carga masiva de registros:


1. Establezca Tamaño de matriz en un valor entre 1 y 999.999.999. El valor
predeterminado es 2.000.
2. Establezca Tamaño de almacenamiento intermedio en un valor entre 4 y
100.240, que representa el tamaño de almacenamiento intermedio en KB. El
valor predeterminado es 1.024 KB.

Distinción entre mayúsculas y minúsculas


Para mantener la distinción entre mayúsculas y minúsculas de los nombres de
objetos de esquema de Oracle, puede especificar manualmente comillas dobles
alrededor de cada nombre o establecer la propiedad Habilitar identificadores con
comillas en Sí.

El conector Oracle genera automáticamente sentencias SQL y las ejecuta cuando se


establece alguna de estas propiedades:
v Generar SQL en tiempo de ejecución se establece en Sí.
v Acción en tabla se establece en Crear, Sustituir o Truncar.

En estos casos, las sentencias SQL generadas contienen los nombres de columnas y
el nombre de la tabla en la que se debe realizar la operación. Los nombres de
columnas de la tabla de base de datos coinciden con los nombres de columnas que
se especifican en el enlace para la etapa. El nombre de tabla coincide con la tabla
especificada en la propiedad Nombre de tabla.

De forma predeterminada, la base de datos Oracle convierte todos los nombres de


objeto a mayúsculas antes de buscar coincidencias de los nombres con los nombres
de objetos del esquema de Oracle en la base de datos. Si todos los nombres de
objetos de esquema de Oracle utilizan mayúsculas, la forma en que especifique los
nombres en las propiedades del conector, utilizando mayúsculas, minúsculas o una
combinación de ambas no tiene ningún efecto en la coincidencia del esquema. Los
nombres coincidirán. Sin embargo, si los nombres de objetos del esquema de

Capítulo 6. Conector Oracle 119


Oracle utilizan sólo las minúsculas o una combinación de mayúsculas y
minúsculas, debe especificar los nombres exactamente como aparecen en el
esquema de Oracle. En este caso, debe especificar manualmente las comillas dobles
alrededor de cada nombre o establecer la propiedad Habilitar identificadores con
comillas en Sí.

Por ejemplo, suponga que la propiedad Habilitar identificadores con comillas se


establece en No y que desea crear una tabla que contenga una columna y utilizar
una sentencia SELECT que haga referencia a la columna. La sentencia CREATE
TABLE Tabla2b (Col1 VARCHAR2(100)) crea la tabla TABLA2B que contiene una
columna, COL1. La sentencia SELECT Col1 FROM tABLA2B se ejecuta
satisfactoriamente porque la base de datos Oracle cambia automáticamente los
nombres Col1 y tABLA2B de la sentencia a las versiones en mayúsculas COL1 y
TABLA2B y busca coincidencias de estos nombres con el nombre de objeto de
esquema real y el nombre de columna de la base de datos.

Ahora suponga que utiliza la sentencia CREATE TABLE "Tabla2b" ("Col1"


VARCHAR2(100)) para crear la tabla Tabla2b, que contiene una columna, Col1. La
distinción entre mayúsculas y minúsculas se conserva porque ha entrecomillado los
nombres de tabla y columna. Ahora la sentencia SELECT Col1 FROM tABLE2B falla
porque la base de datos Oracle cambia automáticamente Col1 y Tabla2b a las
versiones en mayúsculas COL1 y TABLA2B, y estos nombres no coinciden con los
nombres reales, Col1 y Tabla2b, de la base de datos. Sin embargo, la sentencia
SELECT "Col1" FROM "Tabla2b" se ejecuta satisfactoriamente.

Ahora tome en consideración un ejemplo que ilustra el efecto de la propiedad


Habilitar identificadores con comillas en la creación de tablas y columnas.
Suponga que la propiedad Nombre de tabla se establece en john.test; que el enlace
de entrada contiene las columnas Col1, Col2 y Col3, todos las cuales son del tipo
de datos VarChar(10) y la propiedad Acción en tabla se establece en Crear. Si la
propiedad Habilitar identificadores con comillas se establece en No, el conector
genera y ejecuta estas sentencias SQL en tiempo de ejecución y crea la tabla
JOHN.TEST con las columnas COL1, COL2 y COL3:
CREATE TABLE john.test(Col1 VARCHAR2(10),Col2 VARCHAR2(10),Col3 VARCHAR2(10));

Sin embargo, si la propiedad Habilitar identificadores con comillas se establece en


No, el conector genera y ejecuta esta sentencia SQL en tiempo de ejecución y crea
la tabla john.test con las columnas Col1, Col2 y Col3:
CREATE TABLE "john"."test"("Col1" VARCHAR2(10),"Col2" VARCHAR2(10),
"Col3" VARCHAR2(10));

Caracteres de espacio en blanco, valores NULL y valores de serie


vacía
Para comprender los resultados que se obtienen al utilizar el conector para leer o
grabar datos, revise cómo tratan el conector y la base de datos Oracle estos
caracteres y valores.

Al leer datos de una base de datos o grabar datos en ella, el conector Oracle
siempre conserva los caracteres de espacio en blanco como SPACE, TAB, CR
(retorno de carro) y LF (salto de línea). Además, el conector trata los valores de
texto tal cual y no recorta los caracteres de espacio en blanco iniciales o de cola.

La base de datos Oracle no soporta valores de serie vacía en las columnas de texto.
La base de datos trata estos valores como valores NULL.

120 Guía de conectividad para bases de datos Oracle


Antes de grabar valores en columnas de texto de tamaño fijo, la base de datos
Oracle rellena todos los valores no vacíos con caracteres de espacio en blanco.

Por ejemplo, suponga que utiliza la siguiente sentencia para crear una tabla de
destino denominada TABLA1 y configura el conector para que inserte datos o los
cargue masivamente en esta tabla:
CREATE TABLE TABLA1 (COL1 VARCHAR2(10), NULL, COL2 CHAR(3) NULL);

La tabla siguiente muestra los datos de entrada para las columnas COL1 y COL2 y
los valores correspondientes que se almacenarán en TABLA1. En la tabla, el guión
(-) representa un carácter de espacio en blanco.
Tabla 18. Ejemplo de valores de columna de entrada y valores de tabla correspondientes
almacenados en la base de datos
Valores de columna Valores de tabla
"VAL1-1-", "V1-" "VAL1-1-", "V1-"
"V2--", "2-" "V2--", "2--"
"-", "-" "-", "---"
"3", NULL "3", NULL
NULL, "4" NULL, "4--"
"", "" NULL, NULL
NULL, NULL NULL, NULL

Utilización del conector Oracle en un trabajo de etapa Distributed


Transaction
Al definir la conexión entre el conector Oracle y la base de datos Oracle, se
especifica el gestor de recursos de Oracle en el que se debe grabar.

Para utilizar el conector Oracle en un trabajo de etapa Distributed Transaction


(DTS), realice estas tareas:
1. Configure el gestor de colas IBM WebSphere MQ como el gestor de
transacciones.
2. Configure la base de datos Oracle como el gestor de recursos.
3. Defina la conexión entre el conector Oracle y la base de datos Oracle.

Al añadir información de configuración del gestor de recursos al gestor de colas


WebSphere MQ, generalmente se define el campo BD y el campo SqlNet en cada
entrada XAOpenString. El campo BD solo es necesario si un trabajo graba en más
de un gestor de recursos Oracle. En ese caso, el campo se utiliza para diferenciar
entre varios gestores de recursos Oracle.

Registre el valor para el parámetro SqlNet. Si define más de un gestor de recursos


Oracle con el gestor de colas MQ, registre el valor para el parámetro BD. Debe
proporcionar estos valores al configurar el conector Oracle para que se ejecute en
un trabajo DTS.

Al definir la conexión entre el conector Oracle y la base de datos Oracle, debe


completar estos campos:
Nombre de base de datos XA
Especifique el valor del campo BD de la entrada XAOpenString. Este

Capítulo 6. Conector Oracle 121


campo solo se requiere si registra más de un gestor de recursos Oracle en
el gestor de colas MQ al que la etapa DTS hace referencia.
Servidor
Especifique el valor en el campo SqlNet de la entrada XAOpenString.

Diagnóstico y recuperación de errores


Registre los mensajes del entorno Oracle, habilite el soporte para la TAF (migración
tras error transparente de aplicaciones), establezca propiedades que controlen la
anomalía de trabajos, realice las acciones correctoras para arreglar las condiciones
de error que se informan al archivo de registro y configure los enlaces de rechazo.

Configuración del conector Oracle para la migración tras error


transparente de la aplicación
Configure el conector Oracle para que reciba mensajes que describan cuándo se
inicia la migración tras error y cómo progresa.

Cuando la conexión de base de datos está habilitada para la migración tras error
transparente de la aplicación (TAF), la aplicación que se conecta a la base de datos
se vuelve a conectar de forma transparente a una instancia de base de datos
alternativa, si falla la conexión original. Puesto que la reconexión se produce
transparentemente, mientras ésta se produce, puede parecer que el conector detiene
inesperadamente la ejecución y que se cuelga. Por esta razón, es aconsejable
configurar el conector para que reciba notificaciones sobre la TAF. También puede
especificar cuánto tiempo el lado de la conexión del cliente Oracle espera que la
TAF se complete. Para configurar el conector para notificaciones TAF, establezca
estas propiedades:
v Establezca la propiedad Gestionar migración tras error de la aplicación en Sí.
v Establezca el Número de reintentos en el número de veces que se debe intentar
la migración tras error de la aplicación.
v Establezca Tiempo entre reintentos en el número de segundos que se deben
esperar entre los intentos posteriores a la migración tras error.

Si los valores RETRIES y DELAY se especifican como parte de la configuración de


FAILOVER_MODE en el archivo tnsnames.ora, el conector ignora estos valores y
en su lugar utiliza los valores que se especifican para las propiedades Número de
reintentos y Tiempo entre reintentos.

Hay dos tipos de TAF: SESSION y SELECT. Para que el conector continúe
captando datos para la sentencia SELECT que se ha interrumpido cuando se ha
producido la migración tras error, habilite el tipo de migración tras error SELECT.

Estos son los pasos que el conector realiza cuando se inicia la TAF:
1. El conector registra un mensaje de aviso que indica que la TAF se ha iniciado.
Este mensaje incluye el tipo de TAF, SESSION o SELECT, que está teniendo
lugar.
2. Cada vez que el cliente Oracle intenta la migración tras error de la aplicación,
el conector registra un mensaje de aviso para indicar el intento de migración
tras error.
3. Si la TAF es satisfactoria, el conector registra un mensaje de aviso para indicar
la finalización satisfactoria de la TAF.
4. Si la propiedad Sentencia SQL anterior se establece en Sí, el conector vuelve a
ejecutar la sentencia que se especifica en la propiedad Sentencia SQL anterior.

122 Guía de conectividad para bases de datos Oracle


Si la propiedad Volver a ejecutar sentencia SQL anterior (nodo) se establece en
Sí, el conector vuelve a ejecutar la sentencia especificada en la propiedad
Sentencia SQL anterior (nodo) una vez en cada nodo.
5. Si todos los intentos de TAF fallan o si el cliente Oracle indica que la TAF no se
puede completar, el conector registra un mensaje de aviso, y la operación se
detiene porque no hay ninguna conexión válida con la base de datos.

Ejemplos: Migración tras error transparente de la aplicación


Estos ejemplos ilustran cómo se ejecuta el conector cuando la propiedad Gestionar
migración tras error de la aplicación se establece en No y cuando se establece en
Sí.

Hay varias conexiones de bases de datos configuradas y Gestionar


migración tras error de la aplicación se ha establecido en No

Esta es la configuración para este ejemplo:


v El conector está configurado para ejecutar una sentencia SELECT que lee
1.000.000 filas de una tabla.
v La propiedad Gestionar migración tras error de la aplicación está establecida en
No.
v El conector está configurado para conectarse a un sistema Oracle RAC.
v El conector especifica ORCL_1 como el descriptor de conexión que se debe
utilizar para conectarse a una instancia de base de datos orcl1.
v El archivo de configuración tnsnames.ora contiene los descriptores de conexión
siguientes:
ORCL_1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = servidor-orcl1)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = orcl)(INSTANCE_NAME = orcl1)
(FAILOVER_MODE = (BACKUP = ORCL_2)(TYPE = select)(METHOD = preconnect))))

ORCL_2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = servidor-orcl2)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = orcl)(INSTANCE_NAME = orcl2)
(FAILOVER_MODE = (BACKUP = ORCL_1)(TYPE = select)(METHOD = preconnect))))

La conexión que se ha establecido a través del descriptor de conexión ORCL_1


tiene las siguientes características:
v El cliente Oracle se conecta a la escucha del host servidor-orcl1 y el puerto 1521 y
se inscribe en el servicio orcl y la instancia orcl1.
v FAILOVER_MODE especifica que si la instancia orcl1 pasa a no estar disponible
mientras la aplicación está conectada a ella, se produce un tipo SELECT de TAF.
v La opción BACKUP especifica el descriptor de conexión de seguridad que el
cliente Oracle utiliza si se produce una migración tras error.
v La opción METHOD especifica cuando el cliente Oracle se conecta a la instancia
de seguridad. El valor PRECONNECT especifica que la conexión de seguridad
se establece a la vez que se establece la conexión primaria. Entonces si falla la
conexión primaria, se produce la migración tras error a la conexión de
seguridad. El valor alternativo para la opción METHOD es BASIC. Cuando se
especifica BASIC, la conexión con la instancia de seguridad se produce cuando
se efectúa realmente la migración tras error.

Si la conexión para la instancia orcl1 falla mientras el conector capta datos de una
tabla, el conector detiene el proceso de datos hasta que tiene lugar la migración

Capítulo 6. Conector Oracle 123


tras error a la instancia orcl2. Puesto que Gestionar migración tras error
transparente de la aplicación se ha establecido en No, el conector no recibe
ninguna notificación cuando se inicia o completa la migración tras error. Como la
conexión con la instancia de seguridad se ha establecido al mismo tiempo que la
conexión primaria, la migración tras error se produce rápidamente y puede ser tan
rápida que el retardo no se aprecie. Después de completarse la migración tras
error, el conector continúa captando datos porque TYPE de la migración tras error
se ha establecido en SELECT. Si TYPE de la migración tras error se estableciera en
SESSION, fallaría la siguiente solicitud de captación que el conector emitiera.
Después el conector registraría un mensaje muy grave y el trabajo se detendría.

Si el conector está configurado para grabar datos y ejecuta una sentencia INSERT
cuando la conexión para la instancia falla, después de completarse la migración
tras error y que el conector haya intentado insertar datos nuevos o confirmar los
datos que se han insertado justo antes de la instancia que falla, la sentencia fallará.
El conector registrará un mensaje de error y el trabajo se detendrá.

Hay una única conexión de base de datos configurada y Gestionar


migración tras error de la aplicación se ha establecido en Sí

En este ejemplo, sólo hay una instancia de base de datos, y la migración tras error
únicamente se produce después de que el administrador de Oracle reinicie la
instancia. Esta es la configuración para este ejemplo:
v El conector está configurado para ejecutar una sentencia SELECT que lee
1.000.000 filas de una tabla.
v La propiedad Gestionar migración tras error de la aplicación está establecida en
Sí.
v El conector está configurado para conectarse a una única instancia de base de
datos.
v El conector especifica ORCL como el descriptor de conexión que se va a utilizar
para conectar con la instancia de base de datos orcl.
v El archivo de configuración tnsnames.ora contiene el siguiente descriptor de
conexión:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = servidor-orcl)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = orcl)
(FAILOVER_MODE = (TYPE=select)(METHOD=basic)(RETRIES=20)(DELAY=5)
)
)
)
La conexión establecida mediante el descriptor de conexión ORCL tiene las
características siguientes:
v El cliente Oracle se conecta a la escucha en el host servidor-orcl y el puerto 1521 y
se inscribe en el servicio orcl, que implementa una única instancia.
v FAILOVER_MODE especifica que si la instancia pasa a estar no disponible
mientras la aplicación está conectada a ella, tiene lugar el tipo SELECT de TAF.
v La opción METHOD, que se ha establecido en BASIC, especifica que el intento
de volver a conectar con la instancia se produce cuando tiene lugar la migración
tras error.

Si la conexión con la instancia falla mientras el conector capta datos de una tabla,
el conector recibe una notificación de que se está produciendo la migración tras
error porque Gestionar migración tras error de la aplicación se ha establecido en

124 Guía de conectividad para bases de datos Oracle


Sí. Cada vez que el cliente Oracle intenta restablecer la conexión, el cliente Oracle
lo notifica al conector y éste registra un mensaje. El cliente Oracle omite las
opciones RETRIES y DELAY porque están configuradas las propiedades Número
de reintentos y Tiempo entre reintentos para el conector.

Si Gestionar migración tras error de la aplicación se establece en No, el cliente


Oracle lo intenta hasta 20 veces, el valor de la opción RETRIES, para restablecer la
conexión y espera 5 segundos, el valor de la opción DELAY, entre los intentos de
migración tras error. Durante ese tiempo, el conector parece detenido y que falla,
pero, en realidad, el retardo se produce porque el cliente Oracle están intentando la
migración tras error.

Registro del entorno Oracle


El conector Oracle puede registrar mensajes de depuración que contienen
información sobre los valores del entorno Oracle actual. Estos mensajes son útiles
para realizar los diagnósticos de problemas.

De forma predeterminada, los mensajes de depuración no se visualizan en el


archivo de registro. Para ver los mensajes de depuración del archivo de registro,
establezca la variable de entorno CC_MSG_LEVEL en 2.

El conector Oracle registra la siguiente información de entorno:


Versión del cliente Oracle y versión del servidor Oracle
El conector Oracle utiliza la sintaxis siguiente para registrar la versión
actual: A.B.C.D.E, donde A es la versión principal, B es la versión
secundaria, C es el número de actualización, D es el número de parche y E
es el número de actualización de puerto. La versión del cliente Oracle se
registra desde el nodo conductor y desde todos los nodos de proceso. La
versión del servidor Oracle sólo se registra desde el nodo conductor.
parámetros de sesión NLS
El conector registra un mensaje que contiene el nombre y el valor de cada
parámetro de sesión NLS. Los valores se registran desde el nodo conductor
y desde todos los nodos de proceso.
parámetros de base de datos NLS
El conector Oracle registra un mensaje que contiene el nombre y el valor
de cada parámetro de base de datos NLS. Los valores sólo se registran
desde el nodo conductor.
NLS_LANG
El conector Oracle registra un mensaje que contiene el valor de la variable
de entorno NLS_LANG, tal como la ve la biblioteca de cliente Oracle. Es
posible que este valor no coincida con el valor de la variable de entorno
NLS_LANG que especifique o configure en el registro de Microsoft
Windows porque Oracle sustituye cualquier parte incorrecta del valor por
los valores predeterminados para el entorno de cliente actual o los añade si
faltan, si es necesario. El conector registra el valor de NLS_LANG desde el
nodo conductor y desde todos los nodos de proceso.

Propiedades que controlan la anomalía de trabajos


Puede controlar si se debe detener un trabajo cuando determinadas sentencias SQL
no se completan satisfactoriamente o cuando se notifica el primer mensaje de
aviso.

Capítulo 6. Conector Oracle 125


La detención de un trabajo a medio procesar es útil cuando desea recibir una
notificación de solicitud de que algo que espera que funcione ha fallado. Por su
diseño, un trabajo se detiene cuando se notifica un mensaje muy grave. La lista
siguiente contiene las propiedades que controlan la anomalía de trabajos:
v Finalización anómala si hay error para la sentencia create table
v Finalización anómala si hay error para la sentencia drop table
v Finalización anómala si hay error para la sentencia truncate table
v Finalización anómala si hay error para la sentencia SQL anterior
v Finalización anómala si hay error para la sentencia SQL posterior
v Finalización anómala si hay error para la sentencia SQL anterior (nodo)
v Finalización anómala si hay error para la sentencia SQL posterior (nodo)
v Finalización anómala si hay error para la recreación de índice

De forma predeterminada, todas las propiedades, excepto Finalización anómala si


hay error para la sentencia drop table y Finalización anómala si hay error para la
recreación de índice, se establecen en Sí; si se produce un error, el mensaje se
notifica al archivo de registro y el trabajo continúa. Si la propiedad se establece en
No, cuando se produce un error, se notifica el mensaje correspondiente al archivo
de registro y el trabajo se detiene.

Si establece la propiedad Procesar mensajes de aviso como errores muy graves en


Sí, el trabajo se detiene cuando se emite el primer mensaje de aviso y el conector
notifica el error en el registro. De forma predeterminada, esta propiedad se
establece en No. En este caso, cuando se emite el primer mensaje de aviso, se envía
al registro; y el trabajo continúa.

Mensajes
Identifique un error o problema y resuelva el problema utilizando la acción de
recuperación apropiada.

Los mensajes tienen los niveles de gravedad siguientes: Muy grave, Error, Aviso,
Informativo, Depuración y Rastreo. La variable de entorno CC_MSG_LEVEL
controla qué mensajes se informan al archivo de registro. De manera
predeterminada, se informa de los mensajes de nivel informativo y superiores.

Para cambiar el nivel de mensajes que se informan al registro, edite la variable de


entorno CC_MSG_LEVEL y establézcala en uno de los valores siguientes:
v 1 - Rastreo
v 2 - Depuración
v 3 - Informativo
v 4 - Aviso
v 5 - Error
v 6 - Muy grave
Por ejemplo, cuando realice los diagnósticos de problemas, es aconsejable
establecer CC_MSG_LEVEL en 2 para que pueda ver los mensajes de depuración,
así como los mensajes de nivel superior.

Puede establecer las propiedades que controlan cuándo se debe detener un trabajo.
Por ejemplo, si la propiedad Procesar mensajes de aviso como errores muy graves
se establece en Sí, un trabajo se detiene cuando el conector notifica el primer

126 Guía de conectividad para bases de datos Oracle


IIS-CONN-ORA-001001 • IIS-CONN-ORA-001014

mensaje de aviso. Los temas siguientes listan los mensajes por gravedad. Cada
mensaje se documenta junto a las acciones correctoras que pueden arreglar la
condición de error.

Mensajes muy graves


Lea el texto de los mensajes muy graves, junto con la descripción de la causa del
error y las recomendaciones para las acciones correctoras que se deben realizar.

Cuando se genera un mensaje muy grave, el trabajo se detiene.

verifique que el servicio de Oracle y la escucha estén en


IIS-CONN-ORA-001001 La variable {0} tiene el valor
ejecución. Si utiliza la autenticación del sistema
{1} que no es válido en el contexto
operativo, asegúrese de que está configurada
actual.
correctamente en la base de datos Oracle.
Explicación: Error muy grave. Se trata de un mensaje
de error genérico que el conector notifica cuando no
IIS-CONN-ORA-001010 Tipo de datos no soportado:
puede elegir un mensaje más específico.
{0}.
Respuesta del Usuario: Utilice la variable y el valor
Explicación: Muy grave. Se trata de un error interno
especificados para intentar determinar el origen del
que indica que el conector ha encontrado un tipo de
problema. Por ejemplo, los valores pueden estar
datos de Oracle que no está soportado para el contexto
relacionados con un nombre de propiedad y un valor
actual. El error puede estar relacionado con un
que esté configurado para el conector.
problema externo.

IIS-CONN-ORA-001002 La función OCI {0} ha


IIS-CONN-ORA-001011 Código de tipo no soportado:
devuelto el estado {1}:
{0}.
OCI_INVALID_HANDLE.
Explicación: Muy grave. Se trata de un error interno
Explicación: Muy grave. Se trata de un error interno
que indica que el conector ha encontrado un tipo de
que se produce en la comunicación entre el conector y
datos de Oracle que no está soportado para el contexto
el cliente de Oracle. El problema puede estar
actual. El error puede estar relacionado con un
relacionado con un problema externo.
problema externo.
Respuesta del Usuario: Compruebe en el registro si
hay mensajes informativos, de aviso y muy graves
IIS-CONN-ORA-001012 La asignación de memoria
adicionales que puedan describir la situación que ha
para {0} bytes ha fallado.
dado lugar a este error muy grave.
Explicación: Muy grave. El sistema se ha quedado sin
memoria disponible, y el conector no ha podido asignar
IIS-CONN-ORA-001003 La función OCI {0} ha
memoria libre para la operación que estaba realizando.
devuelto el estado {1}, código de error
{2}, mensaje de error: {3}. Respuesta del Usuario: Cierre algunas aplicaciones
para liberar la memoria.
Explicación: Muy grave. Se trata de un mensaje
genérico que indica que el cliente de Oracle ha
devuelto un error después de que el conector llamase a IIS-CONN-ORA-001013 El conector no ha podido
la función especificada. inicializar el entorno de XA llamando a
la función de Oracle {0}.
Respuesta del Usuario: Evalúe el estado del error
notificado, el código de error y el mensaje de error. Explicación: Muy grave. Se ha producido un problema
Basándose en esa información, intente deducir la razón al inicializar el entorno de transacción distribuida en
del error. tiempo de ejecución.
Respuesta del Usuario: Asegúrese de que el sistema
IIS-CONN-ORA-001004 El conector no ha podido esté configurado correctamente para utilizarlo con la
establecer conexión con el servidor etapa Distributed Transaction (DTS) y el gestor de
Oracle {0}. Método: {1}, código de error: transacciones.
{2}, mensaje de error {3}.
Explicación: Muy grave IIS-CONN-ORA-001014 La sentencia ha fallado con
el estado {0}: {1} para la fila de entrada
Respuesta del Usuario: Asegúrese de que las
{2}.
propiedades Servidor, Nombre de usuario y
Contraseña se han especificado correctamente, y Explicación: Muy grave.

Capítulo 6. Conector Oracle 127


IIS-CONN-ORA-001015 • IIS-CONN-ORA-001024

Respuesta del Usuario: Consulte el estado notificado,


IIS-CONN-ORA-001020 El conector no ha podido
el mensaje de error y los datos de entrada para intentar
abrir el archivo de configuración de red
determinar lo que ha causado el error.
de Oracle {0}.
Explicación: Muy grave. El conector no ha podido
IIS-CONN-ORA-001015 El conector no ha podido
abrir el archivo de configuración tnsnames.ora. El
crear la tabla {0} porque no se ha podido
archivo puede estar en la ubicación correcta pero puede
obtener información del tipo de datos
que no se le haya otorgado el acceso de lectura, o un
para la columna {1}.
error de nivel de sistema ha impedido que el conector
Explicación: Muy grave. Se trata de un error interno abriese el archivo.
que puede estar relacionado con un problema externo.
Respuesta del Usuario: Verifique que el archivo existe
y que su contenido puede verse. Un método alternativo
IIS-CONN-ORA-001016 El tamaño de la matriz debe de este problema es especificar un descriptor de
establecerse en 1 para que el conector conexión completo o una serie Easy Connect en la
pueda leer valores LOB. propiedad Servidor.

Explicación: Muy grave.


IIS-CONN-ORA-001021 El conector no ha podido
Respuesta del Usuario: Establezca la propiedad de leer el archivo de configuración de red
Tamaño de matriz en 1. de Oracle {0}.
Explicación: Muy grave. El conector no ha podido leer
IIS-CONN-ORA-001017 El conector no ha podido el contenido del archivo de configuración tnsnames.ora.
determinar el valor de ROWID para la
columna LOB {0} de la tabla {1}. Respuesta del Usuario: Verifique que el archivo existe
y que no está vacío. Para sustituir el archivo de
Explicación: Muy grave. El conector no ha podido configuración tnsnames.ora, especifique un descriptor
obtener el identificador para la fila que contiene el de conexión completo o una serie Easy Connect para la
valor LOB que la referencia (ubicador) pasa. propiedad Servidor.
Respuesta del Usuario: Asegúrese de que la columna
y la tabla a las que el error hace referencia están IIS-CONN-ORA-001022 La siguiente sentencia SQL
disponibles y son accesibles para el usuario actual. ha fallado: {0}.
Explicación: Muy grave.
IIS-CONN-ORA-001018 El conector no ha podido
obtener el nombre de tabla para la Respuesta del Usuario: Verifique que la sintaxis de la
columna {0}. La referencia de LOB no se sentencia sea correcta. Consulte el archivo de registro
ha creado. para ver si hay mensajes de aviso y de error adicionales
que pueden contener información que identifique la
Explicación: Muy grave. El conector no ha podido causa por la que la sentencia ha fallado.
obtener el identificador para la fila que contiene el
valor LOB que la referencia (ubicador) pasa.
IIS-CONN-ORA-001023 El conector no ha podido
Respuesta del Usuario: Asegúrese de que la tabla que encontrar una columna en el esquema
contiene la columna LOB está disponible y es accesible de entrada que coincida con el
para el usuario actual. parámetro {0}.
Explicación: Muy grave.
IIS-CONN-ORA-001019 El conector no ha podido
encontrar el archivo tnsnames.ora. Respuesta del Usuario: Asegúrese de que los
Verifique que las variables de entorno parámetros de sentencia coinciden con los nombres de
ORACLE_HOME o TNS_ADMIN estén columna del enlace de entrada. Consulte el número y
establecidas. De forma alternativa, los nombres de los parámetros y las columnas, y
utilice el método de denominación de asegúrese de que existe una correlación que no sea
Easy Connect de Oracle o especifique ambigua entre cada par.
un descriptor de conexión completo.
Explicación: Muy grave. IIS-CONN-ORA-001024 Al leer datos para la
columna {1}, el conector ha recibido el
código de error de Oracle ORA-{0}.
Explicación: Muy grave.
Respuesta del Usuario: Consulte la documentación de
Oracle para obtener más información acerca del error

128 Guía de conectividad para bases de datos Oracle


IIS-CONN-ORA-001025 • IIS-CONN-ORA-001034

de Oracle. Compare la definición de la columna de especificada debe ser una columna NUMBER con la
entrada con la definición de la columna de base de escala establecida en 0 o sin especificar.
datos. Evalúe si el error de Oracle es un resultado de
una no coincidencia entre las dos definiciones de
IIS-CONN-ORA-001030 El conector no ha podido
columna.
establecer una coincidencia del nombre
{0} con ningún nombre de partición o
IIS-CONN-ORA-001025 El conector no ha podido subpartición de la tabla {1}.
generar automáticamente la sentencia
Explicación: Muy grave.
UPDATE. Especifique como mínimo una
columna que no es de claves en el Respuesta del Usuario: Asegúrese de que los valores
esquema de entrada. especificados sean correctos y que el nombre
especificado coincida con un nombre de partición o
Explicación: Muy grave.
subpartición de la tabla especificada.

IIS-CONN-ORA-001026 El conector no ha podido


IIS-CONN-ORA-001031 El conector no ha podido
generar automáticamente la cláusula
encontrar la tabla o vista {0}
WHERE para la sentencia {0}.
especificada.
Especifique como mínimo una columna
de claves en el esquema de entrada. Explicación: Muy grave.
Explicación: Muy grave. Para que el conector genere Respuesta del Usuario: Asegúrese de que el nombre
la sentencia UPDATE o DELETE en tiempo de de tabla o de vista especificado coincida con el nombre
ejecución, el enlace de entrada debe tener como mínimo de la tabla o vista existente. Tenga en cuenta que si no
una columna de claves. se especifica el nombre de esquema con el nombre de
tabla o el nombre de vista, el conector supone que la
tabla o la vista es propiedad del usuario conectado
IIS-CONN-ORA-001027 La ejecución del conector
actualmente.
está restringida a {0} nodos de proceso,
pero el esquema de particionamiento
Oracle especificado para la tabla {1} IIS-CONN-ORA-001032 El conector no ha podido
necesita que el número total de nodos encontrar coincidencia de la columna de
de proceso sea {2}. claves de partición {0} con alguna
columna del esquema de entrada.
Explicación: Muy grave.
Explicación: Muy grave. El conector no ha podido
Respuesta del Usuario: Modifique las reglas de
determinar qué columna del enlace de entrada se debe
restricción para que el número total de nodos coincida
utilizar para comparar valores con el valor de límite de
con el número de nodos que el conector necesita, o
claves de partición.
elimine las restricciones para que el conector pueda
especificar dinámicamente el número de nodos que Respuesta del Usuario: Verifique el número y los
necesita. nombres de las columnas en el enlace de entrada.
Asegúrese de que una de las columnas coincide con la
columna de claves de partición.
IIS-CONN-ORA-001028 El conector no ha podido
encontrar la columna especificada {0} en
la tabla {1}. IIS-CONN-ORA-001033 La columna del esquema de
entrada {0} no es compatible con la
Explicación: Muy grave.
columna de claves de partición {1} del
Respuesta del Usuario: Asegúrese de que el nombre tipo {2}.
de columna especificado y el nombre de tabla sean
Explicación: Muy grave. El tipo de datos de la
correctos y que la columna exista en la tabla. Además
columna seleccionada no es compatible con el tipo de
asegúrese de que el usuario actual sea propietario de la
datos de la columna de claves de partición.
tabla o que el nombre de propietario se incluya con el
nombre de la tabla. Respuesta del Usuario: Asegúrese de que los tipos de
datos de las dos columnas son compatibles.
IIS-CONN-ORA-001029 El tipo de datos de la
columna {0} de la tabla {1} es {2}, y la IIS-CONN-ORA-001034 El conector no ha podido
escala es {3}. Especifique el tipo de datos validar el esquema de entrada.
NUMBER con la escala de 0. Especifique como mínimo una columna
en el esquema de entrada.
Explicación: Muy grave. Cuando el conector lee datos
en paralelo utilizando el método de módulo o el Explicación: Muy grave.
método de rango mínimo y máximo, la columna

Capítulo 6. Conector Oracle 129


IIS-CONN-ORA-001035 • IIS-CONN-ORA-001047

Respuesta del Usuario: Defina como mínimo una


IIS-CONN-ORA-001041 Al analizar el parámetro {0},
columna en el enlace de la etapa.
el conector ha detectado un carácter no
esperado en la posición {1}.
IIS-CONN-ORA-001035 La propiedad {0} necesita un
Explicación: Muy grave.
valor, pero no se ha especificado
ninguno. Respuesta del Usuario: Asegúrese de que la sentencia
SQL especificada tiene un valor válido.
Explicación: Muy grave.

IIS-CONN-ORA-001042 Al analizar el parámetro {0},


IIS-CONN-ORA-001036 El índice {0} está fuera del
el conector esperaba un identificador en
límite de la propiedad {1}.
la posición {1}.
Explicación: Muy grave. Se trata de un error interno
Explicación: Muy grave
que puede estar relacionado con un problema externo.
El mensaje no hace referencia al índice de tabla, sino Respuesta del Usuario: Asegúrese de que la sentencia
que hace referencia al índice de propiedades del SQL especificada tiene un valor válido.
conector interno.
IIS-CONN-ORA-001043 Al analizar el nombre de
IIS-CONN-ORA-001038 El conector no ha podido tabla {0}, el conector ha detectado un
encontrar ninguna tabla que se pueda carácter de comillas dobles desparejado
incluir en la sentencia SELECT para la en la posición {1}.
operación de ver datos.
Explicación: Muy grave.
Explicación: Muy grave.
Respuesta del Usuario: Asegúrese de que la sentencia
Respuesta del Usuario: Consulte la sentencia SQL SQL especificada tiene un valor válido.
especificada en las propiedades del conector y
asegúrese de que especifica correctamente nombres de
IIS-CONN-ORA-001044 Al analizar el nombre de
tabla. Si la propiedad Generar SQL en tiempo de
tabla {0}, el conector ha detectado un
ejecución se establece en Sí, asegúrese de que la
carácter de comillas simples desparejado
propiedad Nombre de tabla especifica un nombre de
en la posición {1}.
tabla.
Explicación: Muy grave.
IIS-CONN-ORA-001039 Al analizar el parámetro {0}, Respuesta del Usuario: Asegúrese de que la sentencia
el conector ha detectado un carácter de SQL especificada contiene un valor válido.
comillas dobles desparejado en la
posición {1}.
IIS-CONN-ORA-001045 Al analizar el nombre de
Explicación: Muy grave. tabla {0}, el conector ha detectado un
carácter no esperado en la posición {1}.
Respuesta del Usuario: Asegúrese de que la sentencia
SQL especificada tiene un valor válido y que todos los Explicación: Muy grave.
caracteres de comillas dobles de la sentencia están
emparejados correctamente. Respuesta del Usuario: Asegúrese de que la sentencia
SQL especificada contiene un valor válido.

IIS-CONN-ORA-001040 Al analizar el parámetro {0},


el conector ha detectado un carácter de IIS-CONN-ORA-001046 Al analizar el nombre de
comillas simples desparejado en la tabla {0}, el conector esperaba un
posición {1}. identificador en la posición {1}.

Explicación: Muy grave. Explicación: Muy grave.

Respuesta del Usuario: Asegúrese de que la sentencia Respuesta del Usuario: Asegúrese de que la sentencia
SQL especificada tiene un valor válido y que todos los SQL especificada contiene un valor válido.
caracteres de comillas simples de la sentencia están
emparejados correctamente. IIS-CONN-ORA-001047 El conector no ha podido
encontrar el archivo {0} especificado; o el
usuario actual no tiene permiso de
lectura para el archivo; o el archivo está
vacío.
Explicación: Muy grave.

130 Guía de conectividad para bases de datos Oracle


IIS-CONN-ORA-001049 • IIS-CONN-ORA-001057

Respuesta del Usuario: Asegúrese de que la ubicación


IIS-CONN-ORA-001053 Ha fallado una operación de
del archivo está especificada correctamente y que el
recreación de índice y el conector está
archivo especificado existe, tiene otorgados permisos de
configurado para detenerse cuando falla
lectura y no está vacío.
una creación.
Explicación: Muy grave.
IIS-CONN-ORA-001049 El conector ha encontrado el
parámetro {0} en formato DataStage y el Respuesta del Usuario: Resuelva el problema que ha
parámetro {1} en formato Oracle. Se causado que la recreación del índice fallara, o cambie
debe utilizar un solo formato las propiedades que configuran cómo continuar cuando
coherentemente para todos los falla una recreación de índice.
parámetros.
Explicación: Muy grave IIS-CONN-ORA-001054 La llamada al sistema {0} ha
fallado con error del sistema operativo
Respuesta del Usuario: Utilice una única sintaxis
{1} ({2}).
coherentemente al especificar parámetros de sentencias.
La sintaxis DataStage es Explicación: Muy grave. Se trata de un error genérico
ORCHESTRATE:nombre_parámetro. La sintaxis Oracle es que el conector recibe después de invocar una función
: nombre, donde nombre es el nombre del parámetro o el del sistema operativo.
número del parámetro.
IIS-CONN-ORA-001055 La sentencia especificada: {0}
IIS-CONN-ORA-001050 Se ha emitido un mensaje de es de tipo incorrecto. El tipo de
aviso y el conector está configurado para sentencia especificado es: {1}.
detenerse cuando se produce este tipo
Explicación: Muy grave.
de mensaje.
Respuesta del Usuario: Asegúrese de que el tipo de
Explicación: Muy grave.
sentencia es adecuado para la propiedad para la que se
Respuesta del Usuario: Resuelva el problema ha especificado.
notificado para que conector no lo siga notificando
como un mensaje de aviso, o cambie las propiedades
IIS-CONN-ORA-001056 La columna de esquema {0}
del conector para permitirle proseguir cuando notifique
debe tener la longitud especificada
un mensaje de aviso.
porque se utiliza para acceder a la
columna de base de datos {1} del tipo de
IIS-CONN-ORA-001051 Se ha encontrado un tipo de datos {2}.
datos no soportado {0} durante una carga
Explicación: Muy grave.
masiva.
Respuesta del Usuario: Especifique un valor de
Explicación: Muy grave.
longitud para la columna especificada. Elija una
Respuesta del Usuario: Cambie el tipo de la columna longitud que sea adecuada para los datos que se
en la tabla de destino por uno de los tipos soportados, transferirán a través de la columna.
cargue los datos de una tabla diferente, o cambie el
valor de la propiedad Modalidad de grabación de
IIS-CONN-ORA-001057 El conector ha encontrado un
Carga masiva a Sentencia Insert.
parámetro que utiliza la sintaxis IBM
InfoSphere DataStage
IIS-CONN-ORA-001052 Al cargar datos, el conector (ORCHESTRATE.nombre_parámetro),
ha recibido un código de error de Oracle que no está permitido en bloques
{0}. PL/SQL. Utilice la sintaxis Oracle
(:nombre, donde nombre es el nombre
Explicación: Muy grave.
del parámetro o el número del
Respuesta del Usuario: Consulte la documentación de parámetro) para especificar el parámetro.
Oracle para obtener información acerca del código de
Explicación: Muy grave.
error. Verifique que las definiciones para las columnas
de entrada coinciden con las definiciones para las Respuesta del Usuario: Utilice sólo la sintaxis Oracle
columnas de la tabla de destino. para especificar los parámetros de enlace en el bloque
PL/SQL.

Capítulo 6. Conector Oracle 131


IIS-CONN-ORA001058 • IIS-CONN-ORA-003007

nombre de tabla de excepciones.


IIS-CONN-ORA001058 El conector se ha configurado
para grabar datos en modalidad de carga Explicación: Muy grave
masiva y se ha seleccionado la condición
de rechazo a fin de comprobar Respuesta del Usuario: Especifique un valor para la
restricciones para el enlace de rechazo. propiedad Nombre de tabla de excepciones o no
Para que esta operación funcione, es seleccione la condición de rechazo Error SQL -
necesario proporcionar también el infracción de restricción para el enlace de rechazo.

Mensajes de aviso
Lea el texto de cada mensaje de aviso, junto con la descripción de la causa del
error y las recomendaciones de las acciones correctoras que se pueden realizar.

Si establece la propiedad Procesar mensajes de aviso como errores muy graves en


Sí, un trabajo se detiene cuando el conector informa del primer mensaje de aviso.
comprobación de restricciones en modalidad de carga
IIS-CONN-ORA-003001 Al descartar la tabla {0}, el
masiva se debe realizar sólo una vez. Para garantizar
conector ha encontrado un error.
que la comprobación de restricciones se realiza sólo una
Explicación: Aviso. El conector recibe este error vez para la etapa y en el nodo de proceso, establezca la
cuando intenta ejecutar una sentencia DROP TABLE. propiedad Modalidad de ejecución en Secuencial.
Generalmente este error indica que la tabla no existe. Entonces sólo hay un nodo.
Respuesta del Usuario: Consulte el archivo de registro Respuesta del Usuario: Para eliminar el aviso, realice
para ver si hay mensajes adicionales que indiquen la una de las tareas siguientes:
razón real de esta anomalía a nivel de SQL. v Cambie la Modalidad de ejecución a Secuencial.
v Cambie la Modalidad de grabación a Insertar.
IIS-CONN-ORA-003002 Al crear la tabla {0}, el v Deseleccione la condición Error SQL - comprobación
conector ha encontrado un error. de restricción para el enlace de rechazo.
Explicación: Aviso. El conector recibe este mensaje
cuando intenta ejecutar la sentencia CREATE TABLE. IIS-CONN-ORA-003005 Se ha encontrado un error de
Este mensaje se devuelve, por ejemplo, cuando la base conversión de datos en modalidad de
de datos ya contiene una tabla con el nombre carga masiva para la fila {0}, columna
especificado y que es propiedad del propietario de {1}.
tabla especificado.
Explicación: Aviso.
Respuesta del Usuario: Consulte el archivo de registro
para ver si hay mensajes adicionales que indiquen la Respuesta del Usuario: Consulte el valor de entrada
razón real de esta anomalía a nivel de SQL. para la fila y la columna especificadas. Asegúrese de
que el valor es válido para la columna de tabla de
salida correspondiente.
IIS-CONN-ORA-003003 Al truncar la tabla {0}, el
conector ha encontrado un error.
IIS-CONN-ORA-003006 Se ha encontrado un error de
Explicación: Aviso. El conector ha recibido un error carga de datos en modalidad de carga
cuando intentaba suprimir filas de la tabla. masiva para la fila {0}.
Respuesta del Usuario: Consulte el archivo de registro Explicación: Aviso.
para ver si hay mensajes adicionales que indiquen la
razón real de la anomalía a nivel de SQL. Respuesta del Usuario: Consulte los datos de entrada
para la fila especificada. Asegúrese de que los valores
de columna son válidos para la definición de tabla de
IIS-CONN-ORA-003004 El conector se ha salida correspondiente.
configurado para cargar datos en
paralelo, pero se ha seleccionado la
condición de rechazo para comprobar IIS-CONN-ORA-003007 El conector no ha podido
restricciones para el enlace de rechazo. habilitar la restricción {0} en la tabla {1}
Esta combinación no está soportada. El porque alguna fila de la tabla infringía
conector se ejecutará en modalidad la restricción. Los valores de ROWID de
secuencial. estas filas se almacenan en la tabla de
excepciones {2}.
Explicación: Aviso. El conector puede enviar registros
hacia abajo en el enlace de rechazo únicamente en un Explicación: Aviso. Algunas filas de los datos
nodo de proceso y no en el nodo conductor. La cargados infringen las restricciones que el conector ha

132 Guía de conectividad para bases de datos Oracle


IIS-CONN-ORA-003008 • IIS-CONN-ORA-003015

inhabilitado durante la carga y que ha intentado volver en modalidad secuencial.


a habilitar después de la carga.
Explicación: Aviso.
Respuesta del Usuario: Si el conector está configurado
Respuesta del Usuario: Cambie el valor para la
para procesar registros rechazados, consulte los
propiedad Modalidad de ejecución de Paralelo a
registros rechazados para determinar la causa del
Secuencial, o cambie el valor para la propiedad Tipo
problema. Si el conector no está configurado para
de partición de Conector Oracle a otro valor.
procesar los registros rechazados, consulte las filas de la
tabla de destino que tienen valores de ROWID que
coinciden con los valores de ROWID que se almacenan IIS-CONN-ORA-003012 El conector se ha
en la tabla de excepciones especificada para determinar configurado para realizar lecturas
cómo han infringido las filas la restricción especificada. particionadas en la tabla {0} con el
método de particiones Oracle, pero se ha
especificado una sola partición o
IIS-CONN-ORA-003008 El conector no ha podido
subpartición {1}. El conector se ejecutará
recrear el índice {0} en la tabla {1}.
en modalidad secuencial.
Código de error: {2}, Mensaje de error:
{3}. Explicación: Aviso.
Explicación: Aviso. La operación de recreación del Respuesta del Usuario: Cambie el valor para la
índice no se ha podido completar. Se ha devuelto un propiedad Modalidad de ejecución de Paralelo a
código de error y un mensaje de error de Oracle. Secuencial, o cambie el valor para la propiedad
Método de lecturas particionadas de Particiones
Respuesta del Usuario: Consulte el código de error
Oracle a otro valor.
Oracle devuelto y el mensaje de error para determinar
la causa por la que ha fallado la operación.
IIS-CONN-ORA-003013 El conector se ha
configurado para realizar grabaciones
IIS-CONN-ORA-003009 El conector se ha
particionadas en la tabla {0}, pero se ha
configurado para utilizar el método de
especificado una sola partición o
particiones Oracle a fin de realizar
subpartición {1}. El conector se ejecutará
lecturas particionadas en {0} nodos de
en modalidad secuencial.
proceso, pero la tabla {1} no está
particionada. El conector se ejecutará en Explicación: Aviso.
modalidad secuencial.
Respuesta del Usuario: Cambie el valor para la
Explicación: Aviso. propiedad Modalidad de ejecución de Paralelo a
Secuencial, o cambie el valor para la propiedad Tipo
Respuesta del Usuario: Cambie la propiedad
de partición de Conector Oracle a otro valor.
Modalidad de ejecución de Paralelo a Secuencial, o
cambie la propiedad Método de lecturas particionadas
de Particiones Oracle a otro valor. IIS-CONN-ORA-003014 El conector se ha
configurado para realizar lecturas
particionadas con el método de
IIS-CONN-ORA-003010 El conector se ha
particiones Oracle, pero la sentencia
configurado para realizar grabaciones
SELECT especificada ya contiene
particionadas en {0} nodos de proceso,
cláusulas PARTITION o
pero la tabla {1} no está particionada. El
SUBPARTITION. El conector se
conector se ejecutará en modalidad
ejecutará en modalidad secuencial.
secuencial.
Explicación: Aviso.
Explicación: Aviso.
Respuesta del Usuario: Cambie el valor para la
Respuesta del Usuario: Cambie la propiedad
propiedad Modalidad de ejecución de Paralelo a
Modalidad de ejecución de Paralelo a Secuencial, o
Secuencial, o cambie el valor para la propiedad
cambie la propiedad Tipo de partición de Conector
Método de lecturas particionadas de Particiones
Oracle a otro valor.
Oracle a otro valor.

IIS-CONN-ORA-003011 El conector se ha
IIS-CONN-ORA-003015 El conector no ha podido
configurado para realizar grabaciones
obtener acceso a la vista del sistema {0}.
particionadas en la tabla {0}, pero esta
El acceso a esta vista del sistema es
tabla utiliza el esquema de
necesario para el método de lectura de
particionamiento {1}, para el cual el
rango de rowid. El conector utilizará el
conector no soporta grabaciones
método de lectura de hash de rowid en
particionadas. El conector se ejecutará
su lugar.

Capítulo 6. Conector Oracle 133


IIS-CONN-ORA-003016 • IIS-CONN-ORA-003024

Explicación: Aviso.
IIS-CONN-ORA-003020 La migración tras error
Respuesta del Usuario: Asegúrese de que el usuario transparente de la migración ha fallado.
actual tiene acceso de lectura a la vista del diccionario
Explicación: Aviso. Este mensaje indica que la
estático de Oracle especificado, o cambie el valor para
migración tras error transparente de la aplicación no se
la propiedad Método de lectura particionada de Rango
ha completado dentro del número de intentos
de rowid a otro valor.
especificado. En la mayoría de casos, el trabajo falla
porque la conexión con la base de datos no es válida.
IIS-CONN-ORA-003016 La migración tras error
transparente de la aplicación no está
IIS-CONN-ORA-003021 La migración tras error
habilitada para el servicio actual.
transparente de la aplicación no se ha
Explicación: Aviso. completado dentro del tiempo y del
número de intentos especificados.
Respuesta del Usuario: Habilite la migración tras
error transparente de la aplicación para el servicio Explicación: Aviso. El cliente Oracle ha determinado
actual, o establezca la propiedad Gestionar migración que no puede completar la migración tras error
tras error de la aplicación en No. transparente de la aplicación para el conector. En la
mayoría de casos, el trabajo falla posteriormente porque
la conexión con la base de datos no es válida.
IIS-CONN-ORA-003017 Se ha iniciado la migración
tras error transparente de la aplicación.
El tipo de migración tras error es {0}. IIS-CONN-ORA-003022 El conector se ha
configurado para realizar grabaciones
Explicación: Aviso. La conexión con la instancia de particionadas, pero el conector no ha
base de datos conectada actualmente ha fallado, y el podido determinar el nombre de la tabla
cliente Oracle ha iniciado una migración tras error que se tiene que utilizar como entrada.
transparente de la aplicación (TAF) para el conector. El conector se ejecutará en modalidad
Respuesta del Usuario: Intente estas tres soluciones: secuencial.
v Espere a que la migración tras error finalice para que Explicación: Aviso.
el trabajo pueda continuar ejecutándose. Tenga en
cuenta que en algunos casos, incluso después de que Respuesta del Usuario: Especifique un valor en la
finalice la TAF, el trabajo puede seguir fallando. propiedad Nombre de tabla o en la propiedad Nombre
de tabla para grabaciones particionadas.
v Investigue la causa por la que ha fallado la instancia
de base de datos y corrija el problema. Luego vuelva
a ejecutar el trabajo. IIS-CONN-ORA-003023 El conector se ha
v Espere hasta que la instancia se vuelva a activar. configurado para realizar lecturas
Luego vuelva a ejecutar el trabajo. particionadas, pero el conector no ha
podido determinar el nombre de la tabla
que se debe utilizar como entrada. El
IIS-CONN-ORA-003018 El conector esperará {0} conector se ejecutará en modalidad
segundos para que se complete la secuencial.
migración tras error transparente de la
aplicación; intento {1} de {2}. Explicación: Aviso.

Explicación: Aviso. Respuesta del Usuario: Especifique un valor en la


propiedad principal Nombre de tabla o especifique un
valor en la subpropiedad Nombre de tabla de la
IIS-CONN-ORA-003019 La migración tras error propiedad Habilitar grabaciones particionadas.
transparente de la aplicación se ha
completado. El conector intentará
reanudar el proceso de datos. IIS-CONN-ORA-003024 Al ejecutar la sentencia {0}
{1}, el conector ha encontrado un error.
Explicación: Aviso. Tenga en cuenta que incluso
después de que se complete la migración tras error Explicación: Aviso.
transparente de la aplicación (TAF), el trabajo puede Respuesta del Usuario: Compruebe la sintaxis de la
seguir fallando. La anomalía del trabajo se produce sentencia especificada y busque algún error.
cuando la operación que se ha interrumpido cuando se Compruebe el archivo de registro para ver si hay otros
ha iniciado la TAF no se puede configurar en la sesión mensajes que puedan contener más información sobre
cliente que se acaba de establecer. la anomalía.

134 Guía de conectividad para bases de datos Oracle


IIS-CONN-ORA-003025

número total de registros que se han rechazado por la


IIS-CONN-ORA-003025 Número de registros
etapa.
rechazados en el nodo actual {0}.
Respuesta del Usuario: Inspeccione los registros
Explicación: Este mensaje informa del número de
rechazados, que contienen los datos de los registros
mensajes que se han rechazado en el nodo de proceso
originales. Si ha incluido las columnas ERRORCODE y
actual. El número total de registros que se han
ERRORMESSAGE en el enlace de rechazo, cada registro
rechazado es la suma de todos los registros rechazados
rechazado incluye información sobre el error que ha
de todos los nodos de proceso. Si la etapa se ejecuta en
causado que se rechazara el registro.
un solo nodo, el número notificado coincide con el

Mensajes informativos, de depuración y de rastreo


Los mensajes informativos informan del estado actual del proceso del conector. Los
mensajes de depuración y de rastreo proporcionan información detallada que
puede utilizar para solucionar problemas.

Mensajes informativos
Tabla 19. Números de los mensajes informativos y texto de mensaje correspondiente
Número de mensaje Texto de mensaje
IIS-CONN-ORA-004001 El conector conectado al servidor Oracle {0}.
IIS-CONN-ORA-004002 El conector está configurado para utilizar la
autenticación del sistema operativo.
IIS-CONN-ORA-004003 El conector está configurado para participar
en el entorno de transacción distribuida.
IIS-CONN-ORA-004004 El conector se ejecutará en modalidad
secuencial.
IIS-CONN-ORA-004005 El conector se ejecutará en paralelo en {0}
nodos de proceso.
IIS-CONN-ORA-004006 El conector ha generado la sentencia {0}
siguiente en tiempo de ejecución: {1}.
IIS-CONN-ORA-004007 El conector ha creado la tabla {0}.
IIS-CONN-ORA-004008 El conector ha descartado la tabla {0}.
IIS-CONN-ORA-004009 El conector ha truncado la tabla {0}.
IIS-CONN-ORA-004010 El conector ha ejecutado la sentencia SQL
anterior especificada.
IIS-CONN-ORA-004011 El conector ha ejecutado la sentencia SQL
posterior especificada.
IIS-CONN-ORA-004012 El conector ha ejecutado la sentencia SQL
anterior (nodo) especificada.
IIS-CONN-ORA-004013 El conector ha ejecutado la sentencia SQL
posterior (nodo) especificada.
IIS-CONN-ORA-004014 Número de filas captadas en el nodo actual:
{0}.
IIS-CONN-ORA-004015 Número de filas insertadas en el nodo
actual: {0}.
IIS-CONN-ORA-004016 Número de filas actualizadas en el nodo
actual: {0}.
IIS-CONN-ORA-004017 Número de filas suprimidas en el nodo
actual: {0}.
IIS-CONN-ORA-004018 Número de filas procesadas por el bloque
PL/SQL en el nodo actual: {0}.

Capítulo 6. Conector Oracle 135


Tabla 19. Números de los mensajes informativos y texto de mensaje
correspondiente (continuación)
Número de mensaje Texto de mensaje
IIS-CONN-ORA-004019 Número de registros procesados por la
sentencia select de búsqueda en el nodo
actual: {0}.
IIS-CONN-ORA-004021 El conector se ha configurado para
ejecutarse en {0} nodos de proceso, pero el
esquema de particionamiento Oracle
utilizado para la tabla {1} necesita un total
de {2} nodos de proceso. El estado ejecutará
en {3} nodos de proceso.
IIS-CONN-ORA-004022 El conector se ha configurado para
ejecutarse en modalidad paralela en {0}
nodo, pero las lecturas particionadas no
están habilitadas. El conector se ejecutará en
modalidad secuencial.
IIS-CONN-ORA-004023 El conector ha hecho coincidir la columna de
claves de partición {0} con el campo de
esquema de entrada {1}.
IIS-CONN-ORA-004024 Estadísticas de memoria caché de fechas: {0},
número de elementos en la memoria caché:
{1}, número de aciertos: {2}, número de
desaciertos: {3}, la memoria caché estaba
inhabilitada (1 - Sí, 0 - No): {4}.
IIS-CONN-ORA-004025 El conector ha inhabilitado la restricción {0}
en la tabla {1}.
IIS-CONN-ORA-004026 El conector ha inhabilitado todos los
desencadenantes en la tabla {0}.
IIS-CONN-ORA-004027 El conector ha habilitado la restricción {0} en
la tabla {1}.
IIS-CONN-ORA-004028 El conector ha suprimido las filas de la tabla
{0} que infringían la restricción {1}.
IIS-CONN-ORA-004029 El conector ha habilitado todos los
desencadenantes en la tabla {0}.
IIS-CONN-ORA-004030 El conector cargará {0} filas a la vez.
IIS-CONN-ORA-004031 El conector ha recreado el índice {0} en la
tabla {1}.
IIS-CONN-ORA-004032 La migración tras error transparente de la
aplicación está habilitada para el servicio
actual.
IIS-CONN-ORA-004033 Número de filas cargadas en el nodo actual:
{0}.
IIS-CONN-ORA-004034 El conector utilizará la tabla {0} como
entrada para el método de lecturas
particionadas.
IIS-CONN-ORA-004035 El conector utilizará la tabla {0} como
entrada para el método de grabaciones
particionadas.
IIS-CONN-ORA-004036 El conector ha ejecutado la sentencia {0}: {1}.

136 Guía de conectividad para bases de datos Oracle


Mensajes de depuración

Sólo hay un mensaje de depuración genérico, que tiene hasta cuatro argumentos.
IIS-CONN-ORA-005001 contiene el texto de mensaje CCORA DEBUG:
{0}{1}{2}{3}{4}. El contenido del mensaje de depuración es útil para realizar el
diagnóstico de problemas en un trabajo.

Mensajes de rastreo

Hay dos mensajes de rastreo. Uno indica que se ha especificado un método, y el


otro que se ha salido del método. Ambos mensajes incluyen el nombre de la clase
que define el método, si es aplicable, y el nombre del método.
Tabla 20. Números de los mensajes de rastreo y texto de mensaje correspondiente
Número de mensaje Texto de mensaje
IIS-CONN-ORA-006001 ->{0}::{1}
IIS-CONN-ORA-006002 <-{0}::{1}

Referencia
Estos temas de referencia proporcionan información detallada acerca de las
correlaciones de tipos de datos, las vistas del diccionario, las variables de entorno y
el registro de entorno.

Correlación de tipos de datos y tipos de datos Oracle


En estos temas se ofrece información detallada sobre la correlación de tipos de
datos y tipos de datos Oracle.

Cuando el conector Oracle importa una definición de tabla, el conector convierte


los tipos de datos Oracle en tipos de datos IBM InfoSphere DataStage. Cuando el
conector Oracle crea una tabla mediante la emisión de una sentencia SQL que se
especifica en la propiedad Sentencia Create table, el conector convierte los tipos
de datos DataStage en tipos de datos Oracle.

Tipos de datos de fecha y hora de Oracle


El conector Oracle puede leer columnas que utilizan los tipos de datos de fecha y
hora de Oracle DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE y
TIMESTAMP WITH LOCAL TIME ZONE, así como grabar en ellas.

La forma en que el conector maneja los tipos de datos de fecha y hora de Oracle
depende de si el esquema de tiempo de diseño especifica columnas de fecha y
hora o de texto. En un trabajo, las columnas de tipos de datos Date, Time y
Timestamp son columnas de fecha y hora, mientras que las columnas Char,
VarChar, LongVarChar, NChar, NVarChar y LongNVarChar son columnas de texto.

Grabación de datos en columnas de fecha y hora de Oracle

Cuando la definición de tabla de un enlace especifica una columna en un tipo de


datos de texto, los valores de texto que el conector graba deben coincidir con el
formato especificado en los parámetros de sesión NLS de Oracle. En Oracle, los
parámetros de sesión siguientes controlan el formato de las fechas y las
indicaciones de fecha y hora.
v NLS_CALENDAR

Capítulo 6. Conector Oracle 137


v NLS_DATE_FORMAT
v NLS_DATE_LANGUAGE
v NLS_TIME_FORMAT
v NLS_TIME_TZ_FORMAT
v NLS_TIMESTAMP_FORMAT
v NLS_TIMESTAMP_TZ_FORMAT

Hay dos maneras de especificar los parámetros de sesión. Primero, puede


establecer las variables de entorno que tengan los mismos nombres que los
parámetros de sesión. Si utiliza este método, también debe definir la variable de
entorno NLS_LANG. Después, puede alterar la sesión actual mediante la inclusión
de sentencias ALTER SESSION SET parámetro = valor en la propiedad Sentencia
SQL anterior (nodo).

Cuando el conector Oracle reenvía valores de fecha y hora al cliente Oracle como
texto, el cliente Oracle supone que los valores coinciden con el formato que los
parámetros de sesión NLS especifican. Si el formato no coincide, el cliente Oracle
devuelve un error para los valores y el conector registra un mensaje. Por ejemplo,
si el parámetro de sesión NLS_DATE_FORMAT se establece en DD/MM/AAAA,
los valores de texto que el conector graba en una columna de tipo de datos DATE
deben ajustarse a ese formato. En este caso, el valor 03/12/2008 es aceptable, pero
el valor 03-DIC-2008 no.

Cuando el esquema de tiempo de diseño especifica una columna en un tipo de


datos de fecha y hora, el conector Oracle ignora los valores NLS de Oracle y
convierte los valores en tipo de datos de fecha y hora de Oracle.

Puede configurar el conector Oracle para que registre los mensajes de depuración
que contienen información acerca de los valores actuales para los parámetros de
sesión NLS de Oracle, los parámetros de base de datos NLS y la variable de
entorno NLS_LANG. De forma predeterminada, los mensajes de depuración no se
visualizan en el archivo de registro. Para ver los mensajes de depuración del
archivo de registro, establezca la variable de entorno CC_MSG_LEVEL en 2.

Lectura de datos de columnas de fecha y hora de Oracle

Cuando la definición de tabla del enlace de salida especifica una columna en un


tipo de datos de texto, los valores que el conector proporciona en el enlace de
salida coinciden automáticamente con el formato que los parámetros de sesión
NLS de Oracle especifican. Esta coincidencia se produce porque Oracle convierte
automáticamente los valores de fecha y hora en valores de texto en el formato
especificado. Cuando la definición de tabla del enlace de salida especifica una
columna en un tipo de datos de fecha y hora, el conector Oracle realiza la
conversión entre los dos tipos de datos de fecha y hora e ignora los valores NLS de
Oracle.

Tipos de datos LOB y XMLType de Oracle


El conector Oracle soporta la lectura y grabación de los tipos de datos LOB de
Oracle BFILE, BLOB, CLOB, NCLOB, LONG RAW, RAW y XMLType.

Al configurar el conector Oracle para leer datos de una tabla de base de datos que
contiene columnas LOB, se especifica cómo se deben producir los valores de los
campos LOB en en enlace de salida. Las opciones son en línea y por referencia.

138 Guía de conectividad para bases de datos Oracle


Cuando se utiliza la forma en línea, el conector produce los valores reales.
Generalmente, la forma en línea es eficaz para transferir valores LOB pequeños,
inferiores a 100 KB. Para configurar el conector a fin de que utilice la forma en
línea, se establece Habilitar las referencias de LOB en No.

Cuando una etapa preparada para LOB recibe la serie de referencia en su enlace de
entrada, la etapa involucra al conector Oracle para que recupere el valor real al que
la serie de referencia representa. Después, la etapa procesa el valor real. El conector
genera estas series de referencia como los valores de los campos. Cuando una
etapa preparada para LOB en sentido descendente necesita los valores, el conector
utiliza la información de las series de referencia para recuperar los valores reales y
luego los pasa a la etapa en sentido descendente, que los carga en la tabla de
destino. Las etapas preparadas para LOB incluyen el conector DB2, el conector
WebSphere MQ, el conector ODBC, el conector Teradata y el conector Oracle. Si
especifica una etapa de destino que no está preparada para LOB, la etapa de
destino no puede reconocer la serie de referencia como el valor de un ubicador
especial y trata la serie de referencia como datos normales.

Hay ventajas y desventajas en la utilización de la forma de referencia. La ventaja


principal es que la forma de referencia puede transferir valores LOB grandes desde
la etapa de origen a la etapa de destino. La principal desventaja es que las etapas
provisionales no pueden procesar los valores reales. Por ejemplo, si añade una
etapa Transformer a un trabajo, la etapa Transformer no puede realizar operaciones
en los valores LOB reales porque sólo las series de referencia, no los valores reales,
se transfieren a través del trabajo. La forma de referencia es generalmente efectiva
para transferir valores LOB grandes, de 1 MB o más.

Tenga en cuenta estos problemas al configurar el conector para que lea y grabe
datos LOB:
v El conector soporta la forma en línea y de referencia para transferir columnas
BFILE, BLOB, CLOB, NCLOB y XMLType.
v El conector sólo soporta la forma en línea para transferir columnas LONG y
LONG RAW. El atributo de longitud para la columna del enlace debe
establecerse en la longitud máxima esperada para los datos reales en tiempo de
ejecución.
v Al configurar el conector Oracle para leer datos de una columna BFILE, puede
transferir el contenido del archivo real, o puede transferir una referencia a la
ubicación del archivo. Si transfiere el contenido de archivo de BFILE, establezca
la propiedad Transferir contenido de BFILE en Sí. De forma predeterminada,
Transferir contenido de BFILE se establece en No y transferirá la referencia a la
ubicación del archivo.
v Al configurar el conector para que lea los datos XMLType y cree manualmente la
sentencia SELECT, debe utilizar un alias para hacer referencia a la tabla, y la
columna XMLType debe utilizar la función de miembro GETCLOBVAL() o
GETBLOBVAL() de Oracle para obtener el contenido XML real como BLOB o
CLOB. Si la columna del enlace de salida se ha definido como LongVarChar o
LongNVarChar y se ha pasado en línea, utilice la función de miembro
GETCLOBVAL(). Si la columna está definida como LongVarBinary y se ha
pasado en línea, utilice la función de miembro GETBLOBVAL(). No utilice las
funciones de miembro GETCLOBVAL() y GETBLOBVAL() cuando pase
columnas XMLType como referencias de LOB. Para leer una tabla o vista de
objetos XMLType, utilice el seudónimo OBJECT_VALUE para el nombre de
columna.

Capítulo 6. Conector Oracle 139


v Al configurar el conector para que grabe XMLType, si la columna del enlace de
entrada se define como Binary, VarBinary o LongVarBinary, debe utilizar la
función de miembro SYS.XMLTYPE.CREATEXML() de Oracle en la sentencia
SQL para crear el contenido XML.
Para configurar el conector Oracle para que utilice la forma de referencia,
establezca Habilitar referencias LOB en Sí y luego en la propiedad Columnas
para referencias LOB, seleccione las columnas que se deben pasar por referencia.
Sólo las columnas de enlace de tipo de datos LongVarChar, LongNVarChar y
LongVarBinary están disponibles para la selección.

Ejemplos: Transferencia de datos XMLType:

Estos ejemplos ilustran la lectura de datos XMLType de una tabla estándar, una
tabla de objetos y una vista de objetos.

Grabación en una columna XMLType

La definición de la tabla es la siguiente:


CREATE TABLE TABLE1 (COL1 NUMBER(10), COL2 XMLTYPE) XMLTYPE COL2
STORE AS BINARY XML;

Para grabar el valor XML binario en la columna XMLType, especifique esta


sentencia INSERT en la propiedad Sentencia Insert en el conector:
INSERT INTO TABLE1 (COL1, COL2) VALUES (ORCHESTRATE.COL1,
SYS.XMLTYPE.CREATEXML(ORCHESTRATE.COL2, 1, NULL, 1, 1));

Nota: En este ejemplo, el segundo parámetro de la función


SYS.XMLTYPE.CREATEXML especifica el ID del juego de caracteres US7ASCII en
Oracle. El tercer parámetro es un URL de esquema opcional que obliga a que la
entrada se ajuste al esquema especificado. El cuarto parámetro es un distintivo que
indica que la instancia es válida según el esquema XML especificado. El quinto
parámetro es un distintivo que indica que la entrada está formada correctamente.

Lectura de datos XMLType de una tabla o vista estándar

La definición de la tabla es la siguiente:


CREATE TABLE TABLE1 (COL1 NUMBER(10), COL2 XMLTYPE)
XMLTYPE COL2 STORE AS CLOB;

Para recuperar el valor XML como valor CLOB, especifique esta sentencia SELECT
en la propiedad Sentencia Select en el conector:
SELECT COL1, T.COL2.GETCLOBVAL() FROM TABLE1 T;

Para recuperar el valor XML como un valor BLOB que utiliza la codificación de
caracteres AL32UTF8, especifique esta sentencia SELECT en la propiedad
Sentencia Select en el conector:
SELECT COL1, T.COL2.GETBLOBVAL(893) FROM TABLE1 T;

Nota: El número 893 es el ID del juego de caracteres AL32UTF8 en Oracle. Oracle


define un ID de juego de caracteres para cada codificación de caracteres que
soporta. Para obtener información acerca de las codificaciones de caracteres
soportadas y los ID, consulte la documentación de Oracle.

140 Guía de conectividad para bases de datos Oracle


Lectura de datos XMLType de una tabla de objetos

La definición de la tabla es la siguiente:


CREATE TABLE TABLE1 OF XMLTYPE XMLTYPE STORE AS BINARY XML;

Para recuperar el valor XML como valor CLOB, especifique esta sentencia SELECT
en la propiedad Sentencia Select en el conector:
SELECT T.OBJECT_VALUE.GETCLOBVAL() FROM TABLE1 T;

Para recuperar el valor XML como un valor BLOB que utiliza la codificación de
caracteres US7ASCII, especifique la sentencia SELECT en la propiedad Sentencia
Select en el conector:
SELECT T.OBJECT_VALUE.GETBLOBVAL(1) FROM TABLE1 T;

Nota: El número 1 es el ID del juego de caracteres US7ASCII en Oracle.

Lectura de datos XMLType de una vista de objetos

Este ejemplo utiliza TABLE1, que se ha definido en el ejemplo anterior. La


definición de la vista es la siguiente:
CREATE VIEW VIEW1 AS SELECT * FROM TABLE1;

Para recuperar el valor XML de VIEW1 como valor CLOB, especifique esta
sentencia SELECT en la propiedad Sentencia Select en el conector:
SELECT V.OBJECT_VALUE.GETCLOBVAL() FROM VIEW1 V;

Correlación de tipos de datos Oracle con DataStage


Cuando se importan metadatos, el conector Oracle convierte los tipos de datos
Oracle en tipos de datos DataStage.

La tabla siguiente muestra la correlación entre los tipos de datos Oracle y los tipos
de datos DataStage. En la tabla, se utilizan las siguientes abreviaturas:
v n – tamaño
v p – precisión
v fsp – precisión para fracciones de un segundo
v yp – precisión de año
v dp – precisión de día
v sp – precisión de segundo
En la tabla se especifican juegos de caracteres de un solo byte y de doble byte.
Para un juego de caracteres de un solo byte, el parámetro de base de datos
NLS_CHARACTERSET se establece en un juego de caracteres de un solo byte, por
ejemplo, WE8MSWIN1252. Para un juego de caracteres de varios bytes, el
parámetro de base de datos NLS_CHARACTERSET se establece en un juego de
caracteres de varios bytes, por ejemplo, AL32UTF8.

Los tipos de datos Oracle CHAR y VARCHAR2 de la tabla tienen su longitud


especificada como n BYTE o n CHAR. La longitud n BYTE se expresa en unidades
de byte, y la longitud n CHAR se expresa en unidades de caracteres. Si no se
especifica explícitamente BYTE ni CHAR al definir la columna, el parámetro de
base de datos NLS_LENGTH_SEMANTICS determina la unidad de medida. Por
ejemplo, la definición de columna CHAR(5) es equivalente a CHAR(5 BYTE)
cuando el parámetro NLS_LENGTH_SEMANTICS se establece en BYTE, y la

Capítulo 6. Conector Oracle 141


definición de columna es equivalente a CHAR(5 CHAR) cuando el parámetro de
base de datos NLS_LENGTH_SEMANTICS se establece en CHAR.
Tabla 21. Tipos de datos Oracle y tipos de datos DataStage correspondientes
Tipo de datos
Oracle Tipo de datos DataStage
Tipo de SQL Longitud Escala Ampliado
CHAR(n BYTE) CHAR n sin sin definir
definir
CHAR(n CHAR ) CHAR n sin sin definir
de un solo byte definir
CHAR(n CHAR) NCHAR n sin sin definir
varios bytes definir
CHAR de un solo Si el parámetro de base de datos
byte NLS_LENGTH_SEMANTICS se
establece en CHAR, consulte
CHAR(n CHAR) de un solo byte.
De lo contrario, consulte CHAR(n
BYTE). En ambos casos, suponga
que n = 1.
CHAR varios bytes Si el parámetro de base de datos
NLS_LENGTH_SEMANTICS se
establece en CHAR, consulte
CHAR(n CHAR) varios bytes. De
lo contrario, consulte CHAR(n
BYTE). En ambos casos, suponga
que n = 1.
VARCHAR2(n VARCHAR n sin sin definir
BYTE) definir
VARCHAR2(n VARCHAR n sin sin definir
CHAR) de un solo definir
byte
VARCHAR2(n NVARCHAR n sin sin definir
CHAR) varios bytes definir
CLOB de un solo LONGVARCHAR sin sin sin definir
byte definir definir
CLOB varios bytes LONGNVARCHAR sin sin sin definir
definir definir
LONG de un solo LONGVARCHAR sin sin sin definir
byte definir definir
LONG varios bytes LONGNVARCHAR sin sin sin definir
definir definir
NCHAR(n) NCHAR n sin sin definir
definir
NCHAR Consulte NCHAR(n) y suponga
que n = 1.
NVARCHAR2(n) NVARCHAR n sin sin definir
definir
NCLOB LONGNVARCHAR sin sin sin definir
definir definir
NUMBER DOUBLE sin sin sin definir
definir definir

142 Guía de conectividad para bases de datos Oracle


Tabla 21. Tipos de datos Oracle y tipos de datos DataStage
correspondientes (continuación)
Tipo de datos
Oracle Tipo de datos DataStage
NUMBER (p, s) DECIMAL p s sin definir
{p>=s} {s>=0}
NUMBER(p, s) {p<s} DECIMAL s s sin definir
{s>=0}
NUMBER(p, s) {s<0} DECIMAL p-s sin sin definir
definir
FLOAT(p) {1 <=p FLOAT sin sin sin definir
<=63} definir definir
FLOAT(p) {64 <=p DOUBLE sin sin sin definir
<= 126} definir definir
BINARY_FLOAT FLOAT sin sin sin definir
definir definir
BINARY_DOUBLE DOUBLE sin sin sin definir
definir definir
LONG RAW LONGVARBINARY sin sin sin definir
definir definir
RAW(n) VARBINARY n sin sin definir
definir
BLOB LONGVARBINARY sin sin sin definir
definir definir
BFILE VARCHAR 285 sin sin definir
definir
DATE DATE sin sin sin definir
definir definir
TIMESTAMP(fsp) TIMESTAMP sin fsp Micro
definir segundos
TIMESTAMP(fsp) TIMESTAMP sin fsp Micro
WITH TIME ZONE definir segundos

s
TIMESTAMP(fsp) TIMESTAMP sin fsp Micro
WITH LOCAL definir segundos
TIME ZONE
TIMESTAMP Consulte TIMESTAMP(fsp) y
suponga que fsp=6.
TIMESTAMP WITH Consulte TIMESTAMP(fsp) WITH
TIME ZONE TIME ZONE y suponga que fsp=6.
TIMESTAMP WITH Consulte TIMESTAMP(fsp) WITH
LOCAL TIME LOCAL TIME ZONE y suponga
ZONE que fsp=6.
INTERVAL YEAR VARCHAR yp+4 sin sin definir
(yp) TO MONTH definir
INTERVAL DAY TO VARCHAR sp+13 sin sin definir
SECOND (sp) definir
INTERVAL DAY VARCHAR dp+17 sin sin definir
(dp) TO SECOND definir

Capítulo 6. Conector Oracle 143


Tabla 21. Tipos de datos Oracle y tipos de datos DataStage
correspondientes (continuación)
Tipo de datos
Oracle Tipo de datos DataStage
INTERVAL DAY VARCHAR dp+sp+11 sin sin definir
(dp) TO SECOND definir
(sp)
INTERVAL YEAR Consulte INTERVAL YEAR (yp)
TO MONTH TO MONTH y suponga que yp=2.
INTERVAL DAY TO Consulte INTERVAL DAY (dp) TO
SECOND SECOND (sp) y suponga que dp=2
y sp=6.
ROWID CHAR 18 18 sin definir
UROWID(n) VARCHAR n sin sin definir
definir
UROWID Consulte UROWID(n) y suponga
que n=4000.
XMLType guardado Consulte CLOB de un solo byte.
como CLOB u
OBJECT_
RELATIONAL
de un solo byte
XMLType guardado Consulte CLOB de varios bytes.
como CLOB u
OBJECT_
RELATIONAL
varios bytes
XMLType Consulte BLOB.
almacenado como
BINARY XML
Otros UNKNOWN sin sin sin definir
definir definir

Correlaciones de tipos de datos para crear una tabla


Cuando se utiliza la propiedad Acción en tabla para crear una tabla, el conector
correlaciona las definiciones de la columna DataStage con las definiciones de la
columna Oracle.

La tabla siguiente lista las correlaciones y utiliza estas abreviaturas:


v n – tamaño
v p – precisión
v sp – precisión de segundo
v s – escala

Nota: En una definición de columna DataStage, si las entradas para Longitud,


Escala o Ampliado no tienen ningún valor, el atributo no se puede aplicar al tipo
de datos.

144 Guía de conectividad para bases de datos Oracle


Tabla 22. Definiciones de columna DataStage y definiciones de columna Oracle
correspondientes
Definición de columna de DataStage Definición de columna Oracle
Tipo de datos: Bit NUMBER(5,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: Char CHAR(2000)
Longitud: sin definir
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: Char CHAR(n)
Longitud: n
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: VarChar VARCHAR2(4000)
Longitud: sin definir
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: VarChar VARCHAR2(n)
Longitud: n
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: LongVarChar CLOB
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: Char NCHAR(1000)
Longitud: sin definir
Escala: cualquiera
Ampliado: Unicode
Tipo de datos: Char NCHAR(n)
Longitud: n
Escala: cualquiera
Ampliado: Unicode
Tipo de datos: VarChar NVARCHAR2(2000)
Longitud: sin definir
Escala: cualquiera
Ampliado: Unicode
Tipo de datos: VarChar NVARCHAR2(n)
Longitud: n
Escala: cualquiera
Ampliado: Unicode
Tipo de datos: LongVarChar NCLOB
Longitud: n
Escala: cualquiera
Ampliado: Unicode
Tipo de datos: NChar NCHAR(1000)
Longitud: sin definir
Escala: cualquiera
Ampliado:

Capítulo 6. Conector Oracle 145


Tabla 22. Definiciones de columna DataStage y definiciones de columna Oracle
correspondientes (continuación)
Definición de columna de DataStage Definición de columna Oracle
Tipo de datos: NChar NCHAR(n)
Longitud: n
Escala: cualquiera
Ampliado:
Tipo de datos: NVarChar NVARCHAR2(2000)
Longitud: sin definir
Escala: cualquiera
Ampliado:
Tipo de datos: NVarChar NVARCHAR2(n)
Longitud: n
Escala: cualquiera
Ampliado:
Tipo de datos: LongNVarChar NCLOB
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: Binary RAW(2000)
Longitud: sin definir
Escala: cualquiera
Ampliado:
Tipo de datos: Binary RAW(n)
Longitud: n
Escala: cualquiera
Ampliado:
Tipo de datos: VarBinary RAW(2000)
Longitud: sin definir
Escala: cualquiera
Ampliado:
Tipo de datos: VarBinary RAW(n)
Longitud: n
Escala: cualquiera
Ampliado:
Tipo de datos: LongVarBinary BLOB
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: Decimal NUMBER(p)
Longitud: p
Escala: sin definir
Ampliado:
Tipo de datos: Decimal NUMBER (p,s)
Longitud: p
Escala: s
Ampliado:
Tipo de datos: Double BINARY_DOUBLE
Longitud: cualquiera
Escala: cualquiera
Ampliado:

146 Guía de conectividad para bases de datos Oracle


Tabla 22. Definiciones de columna DataStage y definiciones de columna Oracle
correspondientes (continuación)
Definición de columna de DataStage Definición de columna Oracle
Tipo de datos: Float BINARY_FLOAT
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: Real BINARY_FLOAT
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: TinyInt NUMBER(3,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: SmallInt NUMBER(5,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: Integer NUMBER(10,0
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: BigInt NUMBER(19,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin definir
Tipo de datos: TinyInt NUMBER(3,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin signo
Tipo de datos: SmallInt NUMBER(5,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin signo
Tipo de datos: Integer NUMBER(10,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin signo
Tipo de datos: BigInt NUMBER(19,0)
Longitud: cualquiera
Escala: cualquiera
Ampliado: sin signo
Tipo de datos: Numeric NUMBER(p)
Longitud: p
Escala: sin definir
Ampliado:
Tipo de datos: Numeric NUMBER (p,s)
Longitud: p
Escala: s
Ampliado:

Capítulo 6. Conector Oracle 147


Tabla 22. Definiciones de columna DataStage y definiciones de columna Oracle
correspondientes (continuación)
Definición de columna de DataStage Definición de columna Oracle
Tipo de datos: Date DATE
Longitud: cualquiera
Escala: cualquiera
Ampliado:
Tipo de datos: Time INTERVAL DAY(2) TO SECOND(3)
Longitud: cualquiera
Escala: sin definir
Ampliado: sin definir
Tipo de datos: Time INTERVAL DAY(2) TO SECOND(sp)
Longitud: cualquiera
Escala: sp
Ampliado: sin definir
Tipo de datos: Timestamp TIMESTAMP(3)
Longitud: cualquiera
Escala: sin definir
Ampliado: sin definir
Tipo de datos: Timestamp TIMESTAMP(sp)
Longitud: cualquiera
Escala: sp
Ampliado: sin definir
Tipo de datos: Time INTERVAL DAY(2) TO SECOND(6)
Longitud: cualquiera
Escala: sin definir
Ampliado: microsegundos
Tipo de datos: Time INTERVAL DAY(2) TO SECOND(sp)
Longitud: cualquiera
Escala: sp
Ampliado: microsegundos
Tipo de datos: Timestamp TIMESTAMP(6)
Longitud: cualquiera
Escala: sin definir
Ampliado: microsegundos
Tipo de datos: Timestamp TIMESTAMP(sp)
Longitud: cualquiera
Escala: sp
Ampliado: microsegundos
Tipo de datos: Unknown NCLOB
Longitud: cualquiera
Escala: cualquiera
Ampliado: cualquiera

Vistas de diccionario
Para completar tareas específicas, el conector Oracle necesita el acceso a un
conjunto de vistas del diccionario de Oracle.

La lista siguiente describe cómo el conector Oracle utiliza cada vista.


ALL_CONSTRAINTS
El conector Oracle accede a esta vista para obtener la lista de restricciones
para una tabla. La obtención de una lista de restricciones es necesario para

148 Guía de conectividad para bases de datos Oracle


estas tareas: la importación de una definición de tabla, la inhabilitación de
restricciones y la habilitación de restricciones.
ALL_INDEXES
El conector Oracle accede a esta vista para obtener la lista de índices para
una tabla. La obtención de esta información es necesaria para estas tareas:
la importación de una definición de tabla, la determinación de la lista de
índices que se debe recrear y la determinación de cómo se organiza una
tabla , por almacenamiento dinámico o por índice.
ALL_OBJECTS
El conector Oracle accede a esta vista para obtener metadatos adicionales,
como los nombres de tablas y de vistas, para los objetos que el usuario
especifica. Por ejemplo, para una lectura en paralelo que se basa en
particiones Oracle, el conector accede a esta vista para determinar el tipo
de objeto, tabla o vista, y las particiones y subparticiones.
ALL_PART_COL_STATISTICS
El conector Oracle accede a esta vista para determinar el valor de límite
(superior) de cada partición de una tabla. Esta información se utiliza en
una grabación particionada.
ALL_PART_KEY_COLUMNS
El conector Oracle accede a esta vista para determinar la lista de columnas
que están en la clave de partición para una tabla. Esta información se
utiliza en una grabación particionada.
ALL_PART_TABLES
El conector Oracle accede a esta vista para determinar el método de
particionamiento que la tabla utiliza. Cuando el valor Conector Oracle se
especifica para la propiedad Tipo de partición, el conector Oracle utiliza la
información de esta vista para determinar la partición a la que pertenece
cada registro y luego para dirigir cada registro al nodo que está asociado a
esa partición.
ALL_TAB_COLS
El conector Oracle accede a esta vista para determinar los metadatos de
columna, por ejemplo, el tipo de datos, la longitud, la precisión y la escala;
para determinar si una columna es una columna virtual; y para determinar
si una columna existe y si es del tipo de datos correcto cuando se
especifica el método de lectura particionado Módulo o Rango mínimo y
máximo.
ALL_TAB_PARTITIONS
El conector Oracle accede a esta vista para determinar el número y los
nombres de las particiones de una tabla particionada. Esta información es
necesaria para las operaciones de lectura y grabación.
ALL_TAB_SUBPARTITIONS
El conector Oracle accede a esta vista para determinar el número y los
nombres de todas las subparticiones de una tabla particionada compuesta.
Esta información es necesaria para las operaciones de lectura y grabación.
ALL_TABLES
El conector Oracle accede a esta vista para determinar la lista de tablas que
son accesibles para el usuario actual. La obtención de esta información es
necesaria para estas tareas: la importación de una definición de tabla, la
determinación de qué usuarios tienen tablas con el espacio de tabla
SYSTEM o SYSAUX como su espacio de tabla predeterminado, y la
determinación de si una tabla especificada es particionada.

Capítulo 6. Conector Oracle 149


ALL_VIEWS
El conector Oracle accede a esta vista para determinar la lista de vistas que
el usuario actual puede acceder. Esta información se utiliza para presentar
al usuario una lista de vistas que se pueden importar.
ALL_XML_TAB_COLS
Para determinar la opción de almacenamiento XML que se ha especificado
en las definiciones de columna, el conector Oracle accede a esta vista
durante la importación de metadatos de tablas que contienen columnas
XMLType.
ALL_XML_TABLES
Para determinar la opción de almacenamiento XML que se ha especificado
en las definiciones de tabla, el conector Oracle accede a esta vista durante
la importación de metadatos de tablas XMLType.
DBA_EXTENTS
El conector Oracle accede a esta vista para recopilar información acerca de
la organización del almacenamiento de tabla. El conector utiliza la
información cuando se selecciona el método de lectura particionado de
rango de rowid. Si no se ha otorgado el acceso select a esta vista, el
conector cambia automáticamente al método de lectura particionado hash
de rowid.
DUAL Para obtener y calcular distintos valores intermedios que el conector
necesita para esta operación, el conector emite sentencias SELECT en esta
tabla.
USER_TAB_PRIVS
El conector Oracle accede a esta tabla para determinar si se ha otorgado al
usuario actual el privilegio select en una vista de diccionario en particular,
por ejemplo, la vista DBA_EXTENTS. Si no se ha otorgado al usuario
actual el privilegio select, el conector realiza la acción correctora.

Variables de entorno
El conector Oracle consulta y utiliza estas variables de entorno.
CC_MSG_LEVEL
Esta variable de entorno del conector especifica la gravedad mínima de los
mensajes que el conector notifica en el archivo de registro. El valor
predeterminado es 3; se notifican los mensajes informativos, así como de
los mensajes de una gravedad más alta, en el archivo de registro. El
conector Oracle no tiene ningún mensaje con la gravedad de error. La lista
siguiente contiene los valores válidos:
v 1 - Rastreo
v 2 - Depuración
v 3 - Informativo
v 4 - Aviso
v 5 - Error
v 6 - Muy grave
CC_ORA_BIND_KEYWORD
Esta variable de entorno del conector especifica el identificador que indica
un parámetro de enlace en una sentencia SQL definida por el usuario. El
identificador predeterminado es ORCHESTRATE. Utilice esta variable de
entorno para especificar un identificador diferente en los casos en que las

150 Guía de conectividad para bases de datos Oracle


sentencias SQL necesiten utilizar la literal ORCHESTRATE en el nombre de
un esquema, una tabla o una columna, por ejemplo.
CC_ORA_CHECK_CONVERSION
Esta variable de entorno del conector controla si se emiten excepciones
cuando se producen pérdidas de datos debidas a una conversión del juego
de caracteres Unicode en el juego de caracteres nativo de la base de datos.
El valor predeterminado es FALSE. Cuando el valor de esta variable es
TRUE (no distingue entre mayúsculas y minúsculas), se emite una
excepción cuando se produce una pérdida de datos.
CC_ORA_MAX_ERRORS_REPORT
Esta variable de entorno del conector especifica el número máximo de
errores que se deben informar al archivo de registro cuando una operación
implique grabar datos de una matriz o carga masiva. Esta variable solo es
pertinente cuando no se define un enlace de rechazo. El valor
predeterminado es -1, que informa de todos los errores.
CC_ORA_NLS_LANG_ENV
Esta variable de entorno del conector controla si el juego de caracteres
NLS_LANG se utiliza cuando el conector inicializa el entorno de cliente
Oracle. El valor predeterminado es FALSE. Cuando el valor de esta
variable es TRUE (distingue entre mayúsculas y minúsculas), se utiliza el
juego de caracteres NLS_LANG; de lo contrario, se utiliza el juego de
caracteres UTF-16.
CC_ORA_NODE_USE_PLACEHOLDER
Esta variable de entorno del conector controla si el conector sustituye las
apariciones del marcador del número de nodo de proceso por el número
de nodo de proceso actual en todas las sentencias SQL que se ejecutan en
nodos de proceso. Cuando el valor de esta variable es TRUE (no distingue
entre mayúsculas y minúsculas), el conector sustituye las apariciones.
CC_ORA_NODE_PLACEHOLDER_NAME
Esta variable de entorno de conector especifica el valor de la distinción
entre mayúsculas y minúsculas para los números de nodos de proceso en
sentencias SQL.
Vía de acceso de la biblioteca
Esta variable debe incluir el directorio en el que se almacenan las
bibliotecas de cliente Oracle. La lista siguiente contiene el nombre de la
variable de vía de acceso de biblioteca para cada sistema operativo:
v HP-UX - LD_LIBRARY_PATH o SHLIB_PATH
v IBM AIX - LIBPATH
v Linux - LD_LIBRARY_PATH
v Microsoft Windows - PATH
LOCAL
Esta variable de entorno Oracle especifica el servicio Oracle remoto
predeterminado. Cuando se define esta variable, el conector se conecta a la
base de datos especificada pasando a través de una escucha Oracle que
acepta las solicitudes de conexión. Esta variable se utiliza en Microsoft
Windows únicamente. Se debe utilizar la variable de entorno TWO_TASK
para Linux y UNIX.
ORACLE_HOME
Esta variable de entorno Oracle especifica la ubicación del directorio padre
de la instalación de cliente Oracle. El conector utiliza la variable para
localizar el archivo de configuración tnsnames.ora, que es necesario para

Capítulo 6. Conector Oracle 151


establecer una conexión con una base de datos Oracle. El conector busca el
archivo tnsnames.ora bajo el directorio ORACLE_HOME/network/admin.
ORACLE-SID
Esta variable de entorno de Oracle especifica el servicio de Oracle local
predeterminado. Cuando se define esta variable, el conector se conecta a la
base de datos especificada sin pasar a través de una escucha Oracle. En
Microsoft Windows, puede especificar esta variable de entorno en el
registro de Windows.

Nota: Si se definen ORACLE_SID y TWO_TASK o LOCAL, TWO_TASK o


LOCAL tiene prioridad.
TWO_TASK
Esta variable de entorno Oracle especifica el servicio Oracle remoto
predeterminado. Cuando se define esta variable, el conector se conecta a la
base de datos especificada pasando a través de una escucha Oracle que
acepta las solicitudes de conexión. Esta variable se utiliza en Linux y UNIX
únicamente. Se debe utilizar la variable de entorno LOCAL para Microsoft
Windows.

Nota: Si se definen ORACLE_SID y TWO_TASK, TWO_TASK tiene


prioridad. Si se definen ORACLE_SID y TWO_TASK o LOCAL,
TWO_TASK o LOCAL tiene prioridad.
TNS_ADMIN
Esta variable de entorno Oracle especifica la ubicación del directorio que
contiene el archivo de configuración tnsnames.ora. Cuando se especifica
esta variable, tiene prioridad sobre el valor de la variable de entorno
ORACLE_HOME cuando el conector Oracle intenta localizar el archivo de
configuración. El conector busca el archivo tnsnames.ora bajo el directorio
TNS_ADMIN.

152 Guía de conectividad para bases de datos Oracle


Capítulo 7. Creación de sentencias SQL
Utilice la interfaz gráfica del Creador de SQL para construir sentencias SQL que se
ejecuten con bases de datos.

Puede construir los siguientes tipos de sentencias SQL.


Tabla 23. Tipos de sentencias SQL
Sentencia SQL Descripción
SELECT Selecciona filas de datos desde una tabla de
base de datos. La consulta puede realizar
uniones entre varias tablas y agregaciones
de valores en columnas.
INSERT Inserta filas en una tabla de base de datos.
UPDATE Actualiza filas existentes en una tabla de
base de datos.
DELETE Suprime filas de una tabla de base de datos.

Puede utilizar el SQL desde varias etapas de conectividad a las que IBM
InfoSphere DataStage da soporte.

Las distintas bases de datos tienen una sintaxis de SQL un poco distinta
(especialmente por lo que respecta a las operaciones más complejas como, por
ejemplo, las uniones). El formato exacto de las sentencias SQL que el Creador de
SQL produce depende de la etapa desde la que se haya invocado.

No es necesario ser un experto en SQL para utilizar el Creador de SQL, pero será
de utilidad estar familiarizado con la estructura básica de las sentencias SQL.

Inicio del Creador de SQL desde un editor de etapas


Puede acceder al Creador de SQL mediante los editores de etapas. En los casos en
que el tipo de etapa soporte al creador verá un botón Crear SQL. Pulse este botón
para abrir el Creador de SQL. Para algunas etapas deberá seleccionar un método
de acceso apropiado para que el botón sea visible. Consulte la documentación
sobre tipos de etapa individuales para obtener detalles.

El Creador de SQL está disponible para ayudarle a crear sentencias de selección


donde está utilizando una etapa para leer una base de datos (es decir, una etapa
con un enlace de salida).

El Creador de SQL está disponible para ayudarle a crear sentencias de inserción,


actualización y supresión donde está utilizando la etapa para grabar en la base de
datos (es decir, una etapa con un enlace de entrada).

Inicio del Creador de SQL


Utilice la interfaz gráfica del Creador de SQL para construir consultas SQL que se
ejecuten contra bases de datos federadas.
1. En el panel Proveedor de referencia, pulse Examinar. Se abre el recuadro de
diálogo Examinar proveedores.
© Copyright IBM Corp. 2008, 2010 153
2. En la lista Seleccione un proveedor de referencia, seleccione Federation
Server. En el árbol Seleccione un origen de datos federado, se abre la lista de
alias de base de datos.
3. Pulse un alias de base de datos. Se abre la lista de esquemas como nodos bajo
cada alias de base de datos.
4. En la lista Tipo de SQL, seleccione el tipo de consulta SQL que desea construir.
5. Pulse el botón Creador de SQL. Se abre la ventana SQL Builder - DB2 / UDB
8.2. En el panel Seleccionar tablas, el alias de base de datos aparece como un
nodo.

Creación de sentencias SELECT


Creación de sentencias SELECT para consultar tablas y vistas de base de datos
1. Pulse el separador Selección.
2. Arrastre todas las tablas que desee incluir en su consulta desde el árbol de
repositorio al lienzo. Puede arrastrar varias tablas al lienzo para poder
especificar consultas complejas como, por ejemplo, uniones. Previamente debe
haber colocado las definiciones de tabla en el repositorio de IBM InfoSphere
DataStage. La forma más fácil de hacerlo es importando las definiciones
directamente desde su base de datos relacional.
3. Especifique las columnas que desea seleccionar a partir de la tabla o de las
tablas en la cuadrícula de selección de columnas.
4. Si desea volver a definir la selección que está realizando, elija un predicado de
la lista Predicados en el panel de filtros. A continuación, utilice el editor de
expresiones para especificar el filtro real (los campos que aparecerán dependen
del predicado que se seleccione). Por ejemplo, utilice el predicado Comparación
para especificar que una columna debería coincidir con un determinado valor o
el predicado Between para especificar que una columna queda dentro de un
determinado rango. El filtro aparece como una cláusula WHERE en la consulta
finalizada.
5. Pulse el botón Añadir en el panel de filtros. El filtro que especifique aparecerá
en el panel de expresiones de filtro y se añadirá a la sentencia SQL que está
creando.
6. Si está uniendo varias tablas y las uniones automáticas insertadas por el
Creador de SQL no son las que necesitaba, altere manualmente dichas uniones.
7. Si desea agrupar sus resultados según los valores de determinadas columnas,
seleccione la página Agrupar. Seleccione el recuadro de selección Agrupación
de la cuadrícula de agrupación y agregación de columnas correspondiente a la
columna o las columnas según las cuales desee agrupar los resultados.
8. Si desea agregar los valores en las columnas, también debería seleccionar la
página Agrupar. Seleccione la agregación que desea realizar en una columna
desde la lista desplegable Agregación en la columna de agrupación y la
cuadrícula de agregación.
9. Pulse el separador SQL para visualizar la consulta finalizada y para resolver
las columnas generadas por la sentencia SQL con las columnas cargadas en la
etapa (si es necesario).

Creación de sentencias INSERT


Crea sentencias INSERT para insertar filas en una tabla de base de datos.
1. Pulse el separador Insertar.

154 Guía de conectividad para bases de datos Oracle


2. Arrastre la tabla a la que desee insertar filas desde el árbol de repositorio al
lienzo. Previamente debe haber colocado las definiciones de tabla en el
repositorio de IBM InfoSphere DataStage. La forma más fácil de hacerlo es
importando las definiciones directamente desde su base de datos relacional.
3. Especifique las columnas que desea insertar en la cuadrícula de selección de
columnas. Puede arrastrar las columnas seleccionadas de la tabla, efectuar una
doble pulsación en una columna o arrastrar todas las columnas.
4. Para cada columna de la cuadrícula de selección de columnas, especifique como
se derivan los valores. Puede escribir un valor o seleccionar un método de
derivación desde la lista desplegable.
v Parámetros del trabajo. Aparecerá el recuadro de diálogo Parámetro. Realice
una selección a partir de los parámetros que se han definido para este
trabajo.
v Columnas de búsqueda. Aparecerá el recuadro de diálogo Columnas de
búsqueda. Seleccione una columna de las columnas de entrada para la etapa
en la que está utilizando el Creador de SQL.
v Editor de expresiones. Se abre el Editor de expresiones. Cree una expresión
que derive del valor.
5. Pulse el separador SQL para visualizar la consulta terminada.

Creación de sentencias UPDATE


Crea sentencias UPDATE para actualizar filas existentes en una tabla de base de
datos.
1. Pulse el separador Actualizar.
2. Arrastre la tabla cuyas filas desee actualizar desde el árbol de repositorio al
lienzo. Previamente debe haber colocado las definiciones de tabla en el
repositorio de IBM InfoSphere DataStage. La forma más fácil de hacerlo es
importando las definiciones directamente desde su base de datos relacional.
3. Especifique las columnas que desea actualizar en la cuadrícula de selección de
columnas. Puede arrastrar las columnas seleccionadas de la tabla, efectuar una
doble pulsación en una columna o arrastrar todas las columnas.
4. Para cada columna de la cuadrícula de selección de columnas, especifique como
se derivan los valores. Puede escribir un valor o seleccionar un método de
derivación desde la lista desplegable. Incluya series entre comillas simples.
v Parámetros del trabajo. Aparecerá el recuadro de diálogo Parámetro. Realice
una selección a partir de los parámetros que se han definido para este
trabajo.
v Columnas de búsqueda. Aparecerá el recuadro de diálogo Columnas de
búsqueda. Seleccione una columna de las columnas de entrada para la etapa
en la que está utilizando el Creador de SQL.
v Editor de expresiones. Se abre el Editor de expresiones. Cree una expresión
que derive del valor.
5. Si desea volver a definir la actualización que está realizando, elija un predicado
de la lista Predicados en el panel de filtros. A continuación, utilice el editor de
expresiones para especificar el filtro real (los campos que aparecerán dependen
del predicado que se seleccione). Por ejemplo, utilice el predicado Comparación
para especificar que una columna debería coincidir con un determinado valor o
el predicado Between para especificar que una columna queda dentro de un
determinado rango. El filtro aparece como una cláusula WHERE en la sentencia
finalizada.

Capítulo 7. Creación de sentencias SQL 155


6. Pulse el botón Añadir en el panel de filtros. El filtro que especifique aparecerá
en el panel de expresiones de filtro y se añadirá a la sentencia de actualización
que esté creando.
7. Pulse el separador SQL para visualizar la consulta terminada.

Creación de sentencias DELETE


Creación de sentencias DELETE para suprimir filas de una tabla de base de datos
1. Pulse el separador Suprimir.
2. Arrastre la tabla de la que desee suprimir filas desde el árbol de repositorio al
lienzo. Previamente debe haber colocado las definiciones de tabla en el
repositorio de IBM InfoSphere DataStage. La forma más fácil de hacerlo es
importando las definiciones directamente desde su base de datos relacional.
3. Debe elegir una expresión que defina las filas que se deben suprimir. Seleccione
un predicado a partir de la lista Predicado en el panel Filtro. A continuación,
utilice el editor de expresiones para especificar el filtro real (los campos que
aparecerán dependen del predicado que se seleccione). Por ejemplo, utilice el
predicado Comparación para especificar que una columna debería coincidir con
un determinado valor o el predicado Between para especificar que una
columna queda dentro de un determinado rango. El filtro aparece como una
cláusula WHERE en la sentencia finalizada.
4. Pulse el botón Añadir en el panel de filtros. El filtro que especifique aparecerá
en el panel de expresiones de filtro y se añadirá a la sentencia de actualización
que esté creando.
5. Pulse el separador SQL para visualizar la consulta terminada.

La interfaz del Creador de SQL


Los componentes de la mitad superior del Creador de SQL son comunes para
todos los tipos de sentencia que el usuario puede crear. La mitad inferior
comprende una serie de páginas tabuladas. Las páginas que estén disponibles
dependerán del tipo de consulta que esté creando.

Barra de herramientas
La barra de herramientas del Creador de SQL contiene las siguientes herramientas.
v Borrar consulta elimina las entradas de campo para la consulta SQL actual.
v Cortar elimina elementos y los ubica en el área común de Microsoft Windows
para que se puedan pegar en cualquier lugar.
v Copiar copia los elementos y los coloca en el área común de Windows para que
se puedan pegar en cualquier lugar.
v Pegar pega los elementos del área común de Windows en determinados lugares
del creador de SQL.
v Propiedades de SQL abre el recuadro de diálogo Propiedades.
v Entrecomillar conmuta comillas en nombres de tabla y de columna en las
sentencias SQL generadas.
v Validación conmuta la característica de validación. La validación se produce
automáticamente cuando se pulsa Aceptar para salir del Creador de SQL.
v Ver datos está disponible cuando se invoca al Creador de SQL desde las etapas
que soportan la visualización de datos. Hace que la etapa que realiza la llamada
ejecuta el SQL tal como está creado actualmente y devuelve los resultados para
que el usuario pueda verlos.

156 Guía de conectividad para bases de datos Oracle


v Renovar renueva el contenido de todos los paneles del Creador de SQL.
v Vista de ventana permite seleccionar los paneles que se muestran en la ventana
del Creador de SQL.
v Ayuda abre la ayuda en línea.

Panel de árbol
Esta ventana muestra las definiciones de tablas que existen actualmente en el
repositorio de IBM InfoSphere DataStage. La manera más fácil de obtener una
definición de tabla dentro del repositorio es importarla directamente desde la base
de datos que desea consultar. Puede hacerlo mediante el cliente del Diseñador o
directamente desde el menú de atajos del panel de árbol. También puede definir
manualmente una definición de tabla desde el Creador de SQL seleccionando
Tabla nueva... en el menú de atajos del panel de árbol.

Para seleccionar una tabla para consultar, selecciónela en el panel de árbol y


arrástrela al lienzo de selección de tablas. Aparecerá una ventana en el lienzo que
representa la tabla y que lista todas sus columnas individuales.

Un menú de atajos permite:


v Renovar la vista del repositorio
v Definir una nueva definición de tabla (se abre el recuadro de diálogo Definición
de tabla)
v Importar metadatos directamente de un origen de datos (un submenú ofrece una
lista de tipos de origen)
v Copiar una definición de tabla (puede pegarla en el lienzo de selección de
tablas)
v Visualizar las propiedades de la definición de tabla (se abre el recuadro de
diálogo Definición de tabla)

También puede visualizar las propiedades de una definición de tabla realizando


una doble pulsación en dicha definición en el árbol del repositorio.

Lienzo Selección de tablas


Arrastre una tabla del panel de árbol hacia el lienzo de selección de tablas. Si la
tabla deseada no existe en el repositorio, puede importarla desde la base de datos
que está consultando si selecciona Importar metadatos en el menú de atajos del
panel de árbol.

La tabla aparece en una ventana del lienzo, con una lista de las columnas y sus
tipos. Para las sentencias de inserción, actualización y supresión, sólo se puede
colocar una tabla en el lienzo. Para las consultas de selección, se pueden colocar
diversas tablas en el lienzo.

Siempre que intente colocar la tabla en el lienzo, la primera tabla que arrastre
siempre se colocará en la esquina superior izquierda. Si está creando una consulta
de selección, las tablas subsiguientes se pueden arrastrar antes o después de la
inicial o en una fila nueva que quede por debajo. Las áreas elegibles se resaltan en
el lienzo cuando se arrastra la tabla y sólo se puede soltar una tabla en una de las
áreas resaltadas. Si coloca tablas en la misma fila, el Creador de SQL unirá las
tablas automáticamente (puede alterar la unión si dicha unión no es la que desea).

Capítulo 7. Creación de sentencias SQL 157


Si coloca tablas en una fila separada, no se añadirá ninguna unión. Se produce un
Producto cartesiano a la vieja usanza de las filas de tabla en las distintas filas:
Primera tabla FROM, Segunda tabla.

Para obtener detalles sobre cómo unir tablas, consulte Unión de tablas.

Pulse el botón Seleccionar todo que queda por debajo de la barra de título de la
tabla para seleccionar todas las columnas de la tabla. De forma alternativa, puede
efectuar una doble pulsación o arrastrar las columnas individuales desde la tabla
hacia la cuadrícula en la página Seleccionar, Insertar o Actualizar a fin de utilizar
sólo dichas columnas en su consulta.

Con una tabla seleccionada en el lienzo, un menú de atajos le permitirá:


v Añadir una tabla relacionada (sólo consultas de selección). Un submenú muestra
las tablas que tienen una relación de clave foránea con la tabla actualmente
seleccionada. Seleccione una tabla para insertarla en el lienzo, junto con la
expresión de unión inferida por la relación de clave foránea.
v Eliminar la tabla seleccionada.
v Seleccionar todas las columnas de la tabla (para poder, por ejemplo, arrastrarlas
todas a la cuadrícula de selección de columnas).
v Abrir un recuadro de diálogo Seleccionar tabla de forma que pueda unir una
definición de tabla alternativa para la tabla actualmente seleccionada (sólo
seleccionar consultas).
v Abrir el recuadro de diálogo Propiedades de tabla para la tabla actualmente
seleccionada.

Con una unión seleccionada en el lienzo (sólo seleccionar consultas), un menú de


atajos le permitirá:
v Abrir el recuadro de diálogo Alternar relación para especificar que la unión debe
basarse en una relación de clave foránea distinta.
v Abrir el recuadro de diálogo Propiedades de la unión para modificar el tipo de
unión y la expresión de unión asociada.

Desde el fondo del lienzo, un menú de atajos le permitirá:


v Renovar la vista del lienzo de selección de tablas.
v Pegar una tabla que haya copiado desde el panel de árbol.
v Ver datos - Esta opción está disponible cuando se invoca al Creador de SQL
desde las etapas que soportan la visualización de datos. Hace que la etapa que
realiza la llamada ejecuta el SQL tal como está creado actualmente y devuelve
los resultados para que el usuario pueda verlos.
v Abra el recuadro de diálogo Propiedades para ver detalles de la sintaxis SQL
para la que actualmente el Creador de SQL está creando una consulta.

Página Selección
La página Selección aparece cuando se utiliza el Creador de SQL para definir una
sentencia de selección. Utilice esta página para especificar detalles sobre su
consulta de selección. Contiene los componentes siguientes.

Cuadrícula de selección de columnas


Aquí es donde se especifican las columnas que deben incluirse en la consulta.
Puede llenar la cuadrícula de numerosas maneras:

158 Guía de conectividad para bases de datos Oracle


v arrastrar columnas desde las tablas en el lienzo de selección de tablas.
v seleccionar columnas desde una lista desplegable en la cuadrícula.
v efectuar una doble pulsación sobre el nombre de la columna en el lienzo de
selección de tablas.
v copiar y pegar desde el lienzo de selección de tablas.

La cuadrícula contiene los campos siguientes:

Expresión de columna
Identifica la columna que se debe incluir en la consulta. Puede especificar:
v Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la posibilidad
de seleccionar los parámetros de trabajo disponibles. Permite especificar el valor
que debe utilizarse en la consulta durante el tiempo de ejecución (la etapa a
partir de la que está utilizando el Creador de SQL debe permitir que aparezcan
los parámetros de trabajo con esta finalidad).
v Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse en
la consulta.
v Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa a
partir de la que está utilizando el Creador de SQL debe soportar la aparición de
variables de flujo de datos con esta finalidad)
v Columnas de búsqueda. Puede seleccionar directamente una columna de una de
las tablas del lienzo de selección de tablas.

Tabla
Identifica la tabla a la que pertenece la columna. Si llena la cuadrícula de columnas
arrastrando, copiando o efectuando una doble pulsación en una columna del lienzo
de selección de tablas, el nombre de la tabla se rellenará automáticamente. También
puede elegir una tabla de la lista desplegable.

Para especificar el nombre de la tabla en el tiempo de ejecución, elija un parámetro


del trabajo desde la lista desplegable.

Alias de columna
Permite especificar un alias para la columna.

Salida
Se selecciona para indicar que la columna será editada por la consulta. Se
selecciona automáticamente cuando se añade una columna a la cuadrícula.

Ordenación
Seleccione Ascendente o Descendente para que la consulta ordene las filas
devueltas por el valor de esta columna. Si selecciona ordenar los resultados se
añadirá una cláusula ORDER BY a la consulta.

Orden de clasificación
Permite especificar el orden según el que se clasifican las columnas en el caso de
que esté ordenando más de una columna.

Capítulo 7. Creación de sentencias SQL 159


Menú contextual
Un menú de atajos permite:
v Pegar una columna que ya se ha copiado desde el lienzo de selección de tablas.
v Insertar una fila en la cuadrícula.
v Mostrar u ocultar el panel de filtro.
v Eliminar una fila de la cuadrícula.

Panel Filtro
El panel Filtro permite especificar una cláusula WHERE para la sentencia SELECT
que está creando. Contiene una lista de predicados y el panel Editor de
expresiones, los contenidos del cual dependen del predicado seleccionado.

Consulte Editor de expresiones para obtener detalles acerca de la utilización del


editor de expresiones que proporciona el panel Filtro.

Panel Expresión de filtros


Este panel, en la parte inferior de la ventana del Creador de SQL, muestra todos
los filtros que ha añadido a la consulta que está creando. En este panel puede
editar el filtro manualmente. De forma alternativa, puede escribir directamente un
filtro, sin utilizar el editor de expresiones de filtro.

Página Grupo
La página Grupo aparece cuando se utiliza el Creador de SQL para definir una
sentencia de selección. Utilice la página Grupo para especificar que los resultados
de una consulta seleccionada se agrupen en una columna o en varias columnas.
Utilícela también para agregar los resultados en algunas de las columnas, por
ejemplo, puede especificar COUNT para contar el número de filas que contienen
un valor no nulo en una columna.

El separador Grupo permite acceder a la barra de herramientas, al panel de árbol


y al lienzo de selección de tablas de la misma manera que la página Selección.

Cuadrícula de agrupación
Es donde se especifica qué columnas deben agruparse o agregarse.

La cuadrícula se llena con las columnas que ha seleccionado en la página Selección,


Puede cambiar las columnas seleccionadas o seleccionar columnas nuevas, lo que
se reflejará en la selección que realice su consulta.

La cuadrícula contiene los campos siguientes:


v Expresión de columna. Identifica la columna que se debe incluir en la consulta.
Puede modificar las selecciones desde la página Selección o crear una expresión
de columna.
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).

160 Guía de conectividad para bases de datos Oracle


– Editor de expresiones. Aparecerá un recuadro de diálogo del editor de
expresiones que permite especificar una expresión que represente el valor que
debe utilizarse en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa
a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad).
– Buscar columna. Puede seleccionar directamente una columna de una de las
tablas del lienzo de selección de tablas.
v Alias de columna. Permite especificar un alias para la columna. Si selecciona
una operación de agregación para una columna, el Creador de SQL insertará
automáticamente un alias en el formato Alison; puede editarlo si es necesario.
v Salida. Se selecciona para indicar que la columna será editada por la consulta.
Se selecciona automáticamente cuando se añade una columna a la cuadrícula.
v Distinto. Seleccione este recuadro de selección si desea añadir el calificador
DISTINCT a una agregación. Por ejemplo, una agregación COUNT con el
calificador DISTINCT contará el número de filas con valores distintos en un
campo (en contraposición a sólo los valores no nulos). Para obtener más
información acerca del calificador DISTINCT, consulte el Recuadro de diálogo
Propiedades de SQL.
v Agregación. Permite seleccionar una función de agregación para aplicarla a la
columna (tenga en cuenta que se excluye mutuamente con la opción Group By
(Agrupar por)). Consulte Funciones de agregación para obtener detalles sobre las
funciones disponibles.
v Group By. Seleccione este recuadro de selección para especificar que los
resultados de la consulta deben agruparse según los resultados en esta columna.

Funciones de agregación
Las funciones de agregación disponibles varían en función de la etapa desde la que
haya abierto el programa de creación de lenguaje de consulta estructurado (SQL).
Las siguientes son las básicas, soportadas por todas las variantes de sintaxis de
SQL.

Se soportan las siguientes funciones de agregación.


v AVG. Devuelve el promedio de los valores en una columna. Por ejemplo, si tenía
seis filas con una columna que contenía un precio, las seis filas se sumarían y se
dividirían entre seis para conseguir el promedio. Si se especifica el calificador
DISTINCT, sólo se realizará la media de los valores distintos; si las seis filas sólo
contuviesen cuatro precios distintos, estos cuatro se sumarían y se dividirían
entre cuatro para proporcionar una media.
v COUNT. Cuenta el número de filas que contienen un valor que no sea nulo en
una columna. Si se especifica el calificador DISTINCT, sólo se contarán los
valores distintos.
v MAX. Devuelve el valor máximo que las filas tienen en una determinada
columna. Se puede seleccionar el calificador DISTINCT, pero no afecta a esta
función.
v MIN. Devuelve el valor mínimo que las filas tienen en una determinada
columna. Se puede seleccionar el calificador DISTINCT, pero no afecta a esta
función.
v STDDEV. Devuelve la desviación del estándar para un conjunto de números.
v VARIANCE. Devuelve la variación para un conjunto de números.

Capítulo 7. Creación de sentencias SQL 161


Panel Filtro
El panel Filtro permite especificar una cláusula HAVING para la sentencia SELECT
que está creando. Contiene una lista de predicados y el panel Editor de
expresiones, los contenidos del cual dependen del predicado seleccionado.

Consulte Editor de expresiones para obtener detalles acerca de la utilización del


editor de expresiones que proporciona el panel Filtro.

Panel Expresión de filtros


Este panel muestra todos los filtros que ha añadido a la consulta que está creando.
En este panel puede editar el filtro manualmente. De forma alternativa, puede
escribir directamente un filtro, sin utilizar el panel de filtro.

Página Inserción
La página Inserción aparece cuando se utiliza el Creador de SQL para definir una
sentencia de inserción. Utilice esta página para especificar detalles sobre su
sentencia de inserción. El único componente que tiene la página es la cuadrícula de
columna de inserción.

Cuadrícula Insertar columnas


Aquí es donde se especifican las columnas que deben incluirse en su sentencia y
qué valores adoptarán. La cuadrícula contiene los campos siguientes:

Insertar columna
Identifica las columnas que deben incluirse en la sentencia. Puede llenarla de
numerosas maneras:
v arrastrar columnas desde la tabla en el lienzo de selección de tablas.
v seleccionar columnas desde una lista desplegable en la cuadrícula.
v efectuar una doble pulsación sobre el nombre de la columna en el lienzo de
selección de tablas.
v copiar y pegar desde el lienzo de selección de tablas.

Insertar valor
Identifica los valores con los que está configurando la correspondiente columna. Al
proporcionar un valor, puede especificar uno de los siguientes. También puede
escribir directamente un valor en este campo.
v Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la posibilidad
de seleccionar los parámetros de trabajo disponibles. Permite especificar el valor
que debe utilizarse en la consulta durante el tiempo de ejecución (la etapa a
partir de la que está utilizando el Creador de SQL debe permitir que aparezcan
los parámetros de trabajo con esta finalidad).
v Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse en
la consulta.
v Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa a
partir de la que está utilizando el Creador de SQL debe soportar la aparición de
variables de flujo de datos con esta finalidad)

162 Guía de conectividad para bases de datos Oracle


v Columnas de búsqueda. Puede seleccionar directamente una columna de una de
las tablas del lienzo de selección de tablas.

Página Actualización
La página Actualización aparece cuando se utiliza el Creador de SQL para definir
una sentencia de actualización. Utilice esta página para especificar detalles sobre su
sentencia de actualización. Contiene los componentes siguientes.

Cuadrícula de Columna de actualización


Aquí es donde se especifican las columnas que deben incluirse en su sentencia y
qué valores adoptarán. La cuadrícula contiene los campos siguientes:

Columna de actualización
Identifica las columnas que deben incluirse en la sentencia. Puede llenarla de
numerosas maneras:
v arrastrar columnas desde la tabla en el lienzo de selección de tablas.
v seleccionar columnas desde una lista desplegable en la cuadrícula.
v efectuar una doble pulsación sobre el nombre de la columna en el lienzo de
selección de tablas.
v copiar y pegar desde el lienzo de selección de tablas.

Valor de actualización
Identifica los valores con los que está configurando la correspondiente columna. Al
proporcionar un valor, puede especificar uno de los siguientes. También puede
escribir directamente un valor en este campo.
v Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la posibilidad
de seleccionar los parámetros de trabajo disponibles. Permite especificar el valor
que debe utilizarse en la consulta durante el tiempo de ejecución (la etapa a
partir de la que está utilizando el Creador de SQL debe permitir que aparezcan
los parámetros de trabajo con esta finalidad).
v Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse en
la consulta.
v Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa a
partir de la que está utilizando el Creador de SQL debe soportar la aparición de
variables de flujo de datos con esta finalidad)
v Columnas de búsqueda. Puede seleccionar directamente una columna de una de
las tablas del lienzo de selección de tablas.

Panel Filtro
El panel Filtro permite especificar una cláusula WHERE para la sentencia UPDATE
que está creando. Contiene una lista de predicados y el panel Editor de
expresiones, los contenidos del cual dependen del predicado seleccionado.

Consulte Editor de expresiones para obtener detalles acerca de la utilización del


editor de expresiones que proporciona el panel Filtro.

Capítulo 7. Creación de sentencias SQL 163


Panel Expresión de filtros
Este panel muestra todos los filtros que ha añadido a la consulta que está creando.
En este panel puede editar el filtro manualmente. De forma alternativa, puede
escribir directamente un filtro, sin utilizar el panel de filtro.

Página Supresión
La página Supresión aparece cuando se utiliza el Creador de SQL para definir una
sentencia de supresión. Utilice esta página para especificar detalles sobre su
sentencia de supresión. Contiene los componentes siguientes.

Panel Filtro
El panel Filtro permite especificar una cláusula WHERE para la sentencia DELETE
que está creando. Contiene una lista de predicados y el panel Editor de
expresiones, los contenidos del cual dependen del predicado seleccionado.

Consulte "Editor de expresiones" para obtener detalles acerca de la utilización del


editor de expresiones que proporciona el panel Filtro.

Panel Expresión de filtros


Este panel muestra todos los filtros que ha añadido a la consulta que está creando.
En este panel puede editar el filtro manualmente. De forma alternativa, puede
escribir directamente un filtro, sin utilizar el panel de filtro.

Página SQL
Pulse el separador SQL para visualizar la sentencia generada. Si utiliza el menú de
atajos, puede copiar la sentencia para utilizarla en otros entornos.

Para consultas Select, si las columnas que ha definido como columnas de salida
para su etapa no coinciden con las columnas que está generando la sentencia SQL,
utilice la cuadrícula Resolver columnas para reconciliarlas. En la mayoría de casos,
las columnas coincidirán.

Cuadrícula Resolución de columnas


Si las columnas que ha cargado en su editor de etapas (las columnas cargadas) no
coinciden con las columnas generadas por la sentencia SQL (las columnas de
resultado) que ha definido, la cuadrícula Resolución de columnas le ofrece la
oportunidad de reconciliarlas. En el mejor de los casos, las columnas deberían
coincidir (y en circunstancias normales habitualmente lo hacen). Una no
coincidencia haría que los metadatos de su trabajo no estuvieran sincronizados con
los metadatos cargado desde la base de datos de origen (lo que generaría un
problema si está realizando un análisis de uso basado en dicha tabla).

Si hay una no coincidencia, la cuadrícula mostrará un mensaje de aviso. Pulse el


botón Autocoincidencia para resolver la no coincidencia. Se le ofrecerá la opción de
coincidencia por nombre, por orden o por ambos. Al buscar coincidencias, el
Creador de SQL intenta alterar las columnas generadas por la sentencia SQL para
que coincidan con las columnas cargadas en la etapa.

164 Guía de conectividad para bases de datos Oracle


Si elige Coincidencia de nombres y se encuentra una columna con el mismo
nombre y con un tipo de datos compatible, a continuación el Creador de SQL:
v Mueve la columna de resultados a la posición equivalente en la cuadrícula a la
columna cargada (de este modo se cambiará la posición de la columna
nombrada en SQL).
v Modifica todos los atributos de la columna de resultados para que coincidan con
los de la columna cargada.

Si elige Coincidencia por orden, el creador compara cada columna de resultados


con la columna cargada en la posición equivalente. Si se encuentra una no
coincidencia y el tipo de datos de las dos columnas es compatible, el Creador de
SQL:
v Cambia el nombre alias de la columna de resultados para que coincida con la
columna cargada (siempre y cuando, el conjunto de resultados no incluya ya
una columna con dicho nombre.
v Modifica todos los atributos de la columna de resultados para que coincidan con
los de la columna cargada.

Si elija las dos opciones, el Creador de SQL aplica la Coincidencia por nombres y, a
continuación, la Coincidencia por orden.

Si la coincidencia automática no puede reconciliar las columnas del modo descrito


anteriormente, cualquier columna de resultados no coincidente que represente una
solo columna de una tabla se sobrescribirá con los detalles de la columna cargada
en la posición equivalente.

Si pulsa Aceptar en separador SQL, el Creador de SQL comprueba si la columna


de resultados coincide con las columnas cargadas. Si no lo hacen, se visualiza un
mensaje de aviso que permite proseguir o cancelar. Si prosigue, las columnas
cargadas se fusionarán con las columnas de resultados:
v Las columnas que han coincidido no se ven afectadas.
v Las columnas adicionales de las columnas de resultados se añaden a las
columnas cargadas.
v Las columnas del conjunto cargado que no aparecen en el conjunto de resultados
se eliminan.
v En el caso de las columnas que no coinciden, si los tipos de datos son
compatibles, la columna cargada se sobrescribe con la columna de resultados. Si
los tipos de datos no son compatibles, la columna cargada existente se elimina y
se sustituye por la columna de resultados.

También puede editar las columnas de la parte Resultados de la cuadrícula para


reconciliar las no coincidencias manualmente.

Editor de expresiones
El editor de expresiones permite especificar detalles sobre una cláusula WHERE
que se insertará en su consulta de selección o sentencia de actualización o
supresión. También puede utilizarlo para especificar la cláusula WHERE para una
condición de unión donde se estén uniendo varias tablas, o para una cláusula
HAVING. Una variante del editor de expresiones permite especificar un cálculo,
función o una sentencia de caso dentro de la expresión. El editor de expresiones se
puede abrir desde varios lugares del Creador de SQL.

Capítulo 7. Creación de sentencias SQL 165


Editor de expresiones principal
Para especificar una expresión:
v Seleccione el tipo de filtro seleccionando un predicado de la lista.
v Rellene la información necesaria para los campos del Editor de expresiones que
aparecen.
v Pulse el botón Añadir para añadir el filtro a la consulta que está creando. De
este modo se borrará el editor de expresiones para que se pueda añadir otro
filtro si es necesario.

El contenido del editor de expresiones cambia según el predicado que se haya


seleccionado. Dispone de los siguientes predicados:
v Between. Permite especificar que el valor en la columna debe quedar dentro de
un determinado rango.
v Comparison. Permite especificar que el valor en una columna debe ser igual,
mayor que o menor que un determinado valor.
v In. Permite especificar que el valor en una columna debería coincidir con uno de
una lista de valores.
v Like. Permite especificar que el valor en una columna debe contener, empezar
con, finalizar con o coincidir con un determinado valor.
v Null. Permite especificar si una columna debe o no debe ser nula.

Si está creando una consulta para Oracle 8i, puede utilizar el predicado Join. La
lógica aparece en la consulta como una sentencia WHERE. Oracle 8i no soporta
sentencias JOIN.

Between
Si se ha seleccionado el predicado Between, el editor de expresiones contiene:
v Columna. Seleccione la columna en la que va a realizar el filtrado de la lista
desplegable. También puede especificar:
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).
– Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse
en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa
a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad)
– Columna. Puede seleccionar directamente una columna de una de las tablas
del lienzo de selección de tablas.
v Entre/No entre. Seleccione Entre o No entre en la lista desplegable para
especificar si el valor que está comprobando debe estar dentro o fuera de un
rango especificado.
v Inicio del rango. Utilice este campo para especificar el inicio del rango. Pulse el
botón Menú a la derecha del campo e indique detalles sobre el argumento que
está utilizando para especificar el inicio del rango y, a continuación, especifique
el propio valor en el campo.

166 Guía de conectividad para bases de datos Oracle


v Fin del rango. Utilice este campo para especificar el fin del rango. Pulse el botón
Menú a la derecha del campo e indique detalles sobre el argumento que está
utilizando para especificar el fin del rango y, a continuación, especifique el
propio valor en el campo.

Comparison
Si se ha seleccionado el predicado Comparison, el editor de expresiones contendrá:
v Columna. Seleccione la columna en la que va a realizar el filtrado de la lista
desplegable. Al identificar una columna, puede especificar lo siguiente:
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).
– Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse
en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa
a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad)
– Columna. Puede seleccionar directamente una columna de una de las tablas
del lienzo de selección de tablas.
v Operador de comparación. Seleccione el operador de comparación en la lista
desplegable. Los operadores disponibles son:
– = igual a
– <> no igual a
– < menor que
– <= menor que o igual a
– > mayor que
– >= mayor que o igual a
v Valor de comparación. Utilice este campo para especificar el valor con el que
esté realizando la comparación. Pulse el botón Menú a la derecha del campo y
seleccione el tipo de datos para el valor a partir del menú. A continuación,
especifique el propio valor en el campo.

In
Si se ha seleccionado el predicado In, el editor de expresiones contiene:
v Columna. Seleccione la columna en la que va a realizar el filtrado de la lista
desplegable. Al identificar una columna, puede especificar lo siguiente:
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).
– Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse
en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa

Capítulo 7. Creación de sentencias SQL 167


a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad)
– Columna. Puede seleccionar directamente una columna de una de las tablas
del lienzo de selección de tablas.
v In/Not In. Seleccione IN o NOT IN en la lista desplegable para especificar si el
valor debería existir en la lista especificada o no.
v Selección. Estos campos permiten especificar la lista utilizada por la consulta.
Utilice el botón Menú a la derecha del campo único para especificar detalles
acerca del argumento que está utilizando para especificar un elemento de lista y,
a continuación, entre un valor. Pulse la flecha doble de desplazamiento a la
derecha para añadir el valor a la lista.
Para eliminar un elemento de la lista, selecciónelo y, a continuación, pulse la
doble flecha hacia la izquierda.

Like
Si ha seleccionado el predicado Like (como), el editor de expresiones será de la
siguiente manera. Los campos que contiene son:
v Columna. Seleccione la columna en la que va a realizar el filtrado de la lista
desplegable. Al identificar una columna, puede especificar lo siguiente:
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).
– Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse
en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa
a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad)
– Columna. Puede seleccionar directamente una columna de una de las tablas
del lienzo de selección de tablas.
v Like/Not like. Seleccione LIKE (como) o NOT LIKE (no como) en la lista
desplegable para especificar si está incluyendo o excluyendo un valor en la
comparación.
v Operador Like. Seleccione el tipo de comparación Like o Not Like que desea
realizar en la lista desplegable. Los operadores disponibles son:
– Coincide exactamente. La consulta pide una coincidencia exacta para el valor
especificado.
– Empieza por. La consulta buscará coincidencias de filas que empiecen por el
valor que se especifique.
– Finaliza por. La consulta buscará coincidencias de filas que terminen con el
valor que se especifique.
– Contiene. La consulta buscará coincidencias de filas que contengan el valor
que se especifique en cualquier lugar de éstas.
v Valor Like. Especifique el valor con el que el predicado LIKE intentará encontrar
coincidencias.

168 Guía de conectividad para bases de datos Oracle


Null (nulo)
Si ha seleccionado el predicado Null (nulo), el editor de expresiones será de la
siguiente manera. Los campos que contiene son:
v Columna. Seleccione la columna en la que va a realizar el filtrado de la lista
desplegable. Al identificar una columna, puede especificar lo siguiente:
– Parámetro de trabajo. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar los parámetros de trabajo disponibles. Permite
especificar el valor que debe utilizarse en la consulta durante el tiempo de
ejecución (la etapa a partir de la que está utilizando el Creador de SQL debe
permitir que aparezcan los parámetros de trabajo con esta finalidad).
– Expresión. Aparecerá un recuadro de diálogo del editor de expresiones que
permite especificar una expresión que represente el valor que debe utilizarse
en la consulta.
– Variable de flujo de datos. Aparece un recuadro de diálogo que ofrece la
posibilidad de seleccionar las variables de flujo de datos disponibles (la etapa
a partir de la que está utilizando el Creador de SQL debe soportar la
aparición de variables de flujo de datos con esta finalidad)
– Columna. Puede seleccionar directamente una columna de una de las tablas
del lienzo de selección de tablas.
v Es nulo/No es nulo. Seleccione si su consulta coincidirá con una condición
NULL o NOT NULL en la columna.

Join
Este predicado sólo está disponible cuando se está creando una consulta Oracle 8i
con una expresión de unión "anticuada". El editor de expresiones está constituido
de la manera siguiente.
v Columna izquierda. Seleccione la columna que debe estar a la izquierda de la
unión en la lista desplegable.
v Tipo de unión. Seleccione el tipo de unión en la lista desplegable.
v Columna a la derecha. Seleccione la columna que debe estar a la derecha de la
unión en la lista desplegable.

Editor de expresiones de Cálculo/Función/Caso


Esta versión del editor de expresiones permite especificar una expresión dentro de
una expresión WHERE o HAVING o una expresión de unión. Los diálogos del
editor de expresiones están numerados para mostrar la profundidad de su
anidamiento. Los campos del panel del editor de expresiones cambian en función
del predicado seleccionado de la manera siguiente:

Cálculo
Si ha seleccionado el predicado Cálculo, el editor de expresiones contendrá estos
campos:
v Valor izquierdo. Entre el argumento que desee en la parte izquierda del cálculo.
Puede elegir el tipo de argumento pulsando el botón Menú que se encuentra a la
derecha y seleccionado un tipo en el menú.
v Operador de cálculo. Seleccione el operador para el cálculo en la lista
desplegable.
v Valor derecho. Entre el argumento que desee en la parte derecha del cálculo.
Puede elegir el tipo de argumento pulsando el botón Menú que se encuentra a la
derecha y seleccionado un tipo en el menú.

Capítulo 7. Creación de sentencias SQL 169


Funciones
Si ha seleccionado el predicado Funciones, el editor de expresiones contendrá estos
campos:
v Función. Seleccione una función en la lista desplegable.
La lista de funciones disponibles dependerá de la base de datos para la que esté
creando la consulta.
v Descripción. Proporciona una descripción de la función que ha seleccionado.
v Parámetros. Entre los parámetros necesarios para la función que ha seleccionado.
Los parámetros necesarios varían según la función seleccionada.

Caso
La opción Caso del editor de expresiones permite incluir sentencias de caso en el
SQL que está creando. Puede crear sentencias de caso con la sintaxis siguiente.
CASE WHEN condición THEN valor
CASE WHEN...
ELSE valor

o bien
CASE asunto
WHEN valor_coincidencia THEN valor
WHEN...
ELSE valor

Si ha seleccionado el predicado Case (caso), el editor de expresiones contendrá


estos campos:
v Expresión CASE. Es el asunto de la sentencia de caso. Especifique este asunto si
está utilizando la segunda sintaxis descrita más arriba (CASE asunto WHEN). De
forma predeterminada, el campo ofrece una selección de las columnas de la tabla
o tabla que se han arrastrado al lienzo de selección de tablas. Para elegir una
alternativa, pulse el botón de examinar que aparece junto al campo. Proporciona
una selección de tipos de datos, o de especificar otra expresión, una función o
un parámetro de trabajo.
v Expresión CASE. Es el asunto de la sentencia de caso. Especifique este asunto si
está utilizando la segunda sintaxis descrita más arriba (CASE asunto WHEN). De
forma predeterminada, el campo ofrece una selección de las columnas de la tabla
o tabla que se han arrastrado al lienzo de selección de tablas. Para elegir una
alternativa, pulse el botón de examinar que aparece junto al campo. Proporciona
una selección de tipos de datos, o de especificar otra expresión o función.
v When. Permite especificar una condición o valor de coincidencia para su
sentencia de caso. De forma predeterminada, el campo ofrece una selección de
las columnas de la tabla o tabla que se han arrastrado al lienzo de selección de
tablas. Para elegir una alternativa, pulse el botón de examinar que aparece junto
al campo. Proporciona una selección de tipos de datos, o de especificar otra
expresión, una función o un parámetro de trabajo. Se puede acceder al editor de
expresiones principal seleccionando el editor de expresiones de caso en el menú.
Así podrá especificar expresiones como comparaciones. Normalmente lo
utilizaría en el primer ejemplo de sintaxis. Por ejemplo, especificaría grade=3
como la condición en la expresión WHEN grade=3 THEN 'first class'.
v When. Permite especificar una condición o valor de coincidencia para su
sentencia de caso. De forma predeterminada, el campo ofrece una selección de
las columnas de la tabla o tabla que se han arrastrado al lienzo de selección de
tablas. Para elegir una alternativa, pulse el botón de examinar que aparece junto
al campo. Proporciona una selección de tipos de datos, o de especificar otra

170 Guía de conectividad para bases de datos Oracle


expresión o función. Se puede acceder al editor de expresiones principal
seleccionando el editor de expresiones de caso en el menú. Así podrá especificar
expresiones como comparaciones. Normalmente lo utilizaría en el primer
ejemplo de sintaxis. Por ejemplo, especificaría grade=3 como la condición en la
expresión WHEN grade=3 THEN 'first class'.
v Then. Puede utilizarlo para especificar el componente de valor de la expresión
CASE. De forma predeterminada, el campo ofrece una selección de las columnas
de la tabla o tabla que se han arrastrado al lienzo de selección de tablas. Para
elegir una alternativa, pulse el botón de examinar que aparece junto al campo.
Proporciona una selección de tipos de datos, o de especificar otra expresión, una
función o un parámetro de trabajo.
v Then. Puede utilizarlo para especificar el componente de valor de la expresión
CASE. De forma predeterminada, el campo ofrece una selección de las columnas
de la tabla o tabla que se han arrastrado al lienzo de selección de tablas. Para
elegir una alternativa, pulse el botón de examinar que aparece junto al campo.
Proporciona una selección de tipos de datos, o de especificar otra expresión o
función.
v Añadir. Púlselo para añadir una expresión CASE a la consulta. Éste borrará los
campos When y Then para que pueda especificar otra Expresión CASE.
v Expresión ELSE. Puede utilizarlo para especificar el valor para el componente
ELSE opcional de la expresión CASE.

Menús del editor de expresiones


Aparece un botón a la derecha de muchos de los campos del editor de expresiones
y de los diálogos relacionados. Cuando aparezca, puede pulsarlo para abrir un
menú que permite especificar más detalles acerca del argumento que se está
indicando en una expresión.
v Bit. Especifica que el argumento es de tipo bit. El campo argumento ofrece la
posibilidad de seleccionar 0 o 1 en una lista desplegable.
v Columna. Especifica que el argumento es un nombre de columna. El campo
argumento ofrece la posibilidad de seleccionar columnas disponibles en una lista
desplegable.
v Fecha. Especifica que el argumento es una fecha. El Creador de SQL entra la
fecha de hoy en el formato esperado por la base de datos para la que se está
creando la consulta. Puede editar esta fecha si es necesario o pulsar el botón
desplegable y seleccionar una fecha de un calendario.
v Fecha y hora. Especifica que el argumento es una fecha y hora. El Creador de
SQL inserta la fecha y la hora actual en el formato que espera la base de datos
para la que se está creando la consulta. Puede editar la fecha y hora según
necesite.
v Texto sin formato. Permite seleccionar el valor predeterminado de un argumento
(si hay alguno definido).
v Editor de expresiones. Puede especificar una función o una expresión de cálculo
como un argumento de una expresión. Si se realiza esta selección, se abre la
versión de Cálculo/Función del editor de expresiones.
v Función. Puede especificar una función como un argumento para una expresión.
Si se realiza esta selección, se abre el recuadro de diálogo Formulario de
funciones. Las funciones disponibles dependen de la base de datos a la que está
destinada la consulta que está construyendo.
Si se realiza esta selección, se abre el recuadro de diálogo Función.

Capítulo 7. Creación de sentencias SQL 171


v Parámetro de trabajo. Puede especificar que el argumento es un parámetro del
trabajo, el valor para el cual se proporciona cuando se ejecuta realmente el
trabajo de IBM InfoSphere DataStage. Si se realiza esta selección, se abre el
recuadro de diálogo Parámetros.
v Entero. Seleccione esta opción para especificar que el argumento es de tipo
entero.
v Serie. Seleccione esta opción para especificar que el argumento es de tipo serie.
v Hora. Especifica que el argumento es la hora local actual. Puede editar el valor.
v Indicación de fecha y hora. Especifica que el argumento es una indicación de
fecha y hora. Puede editar el valor.
El Creador de SQL inserta la fecha y la hora actual en el formato que espera la
base de datos para la que se está creando la consulta.

Recuadro de diálogo Formulario de funciones


Este recuadro de diálogo permite seleccionar una función para utilizarla dentro de
una expresión y especificar parámetros para la función.

Los campos son los siguientes:


v Función. Seleccione una función en la lista desplegable.
La lista de funciones disponibles dependerá de la base de datos para la que esté
creando la consulta.
v Formato. Indica el formato de la función seleccionada como guía.
v Descripción. Proporciona una descripción de la función que ha seleccionado.
v Resultado. Muestra la función real que se incluirá en la consulta del modo
especificado en este recuadro de diálogo.
v Parámetros. Entre los parámetros necesarios para la función que ha seleccionado.
Los parámetros necesarios varían según la función seleccionada.

Recuadro de diálogo de funciones:

Este recuadro de diálogo permite seleccionar una función para utilizarla dentro de
una expresión y especificar parámetros para la función.

Los campos son los siguientes:


v Función. Seleccione una función en la lista desplegable.
La lista de funciones disponibles dependerá de la base de datos para la que esté
creando la consulta.
v Formato. Indica el formato de la función seleccionada como guía.
v Descripción. Proporciona una descripción de la función que ha seleccionado.
v Resultado. Muestra la función real que se incluirá en la consulta del modo
especificado en este recuadro de diálogo.
v Parámetros. Entre los parámetros necesarios para la función que ha seleccionado.
Los parámetros necesarios varían según la función seleccionada.

Recuadro de diálogo Parámetros


Este recuadro de diálogo confecciona un listado de los parámetros de trabajo que
actualmente están siendo definidos para el trabajo dentro del que el usuario está
trabajando. También indica el tipo de datos del parámetro. Tenga en cuenta que el
Creador de SQL no comprueba que el tipo de parámetro que se está insertando
coincida con el tipo que espera el argumento para el que se está utilizando.

172 Guía de conectividad para bases de datos Oracle


Cómo unir tablas
Cuando utilice el Creador de SQL para ayudarle a crear consultas seleccionadas,
puede especificar uniones de tablas dentro de la consulta.

Cuando se arrastran varias tablas al lienzo de selección de tablas, el Creador de


SQL intenta crear una unión entre la tabla añadida y la que ya está en el lienzo a
su izquierda. Utiliza metadatos de clave foránea capturados si existe tal
posibilidad. La unión se representa mediante una línea que une las columnas que
el Creador de SQL ha decidido unir. Después de que el Creador de SQL inserte
una unión de forma automática, el usuario podrá modificarla.

Cuando se añade una tabla al lienzo, el Creador de SQL determina como se debe
unir la tabla con las tablas que están en el lienzo. El proceso depende de si la tabla
añadida se posiciona a la derecha o a la izquierda de las tablas del lienzo.

Para construir una unión entre la tabla añadida y las tablas a su izquierda:
1. El Creador de SQL empieza con la tabla añadida.
2. Determine si existe una clave foránea entre la tabla añadida y la tabla sujeto.
v Si existe una clave foránea, prosiga con el paso 3.
v Si no existe una clave foránea, salte al paso 4.
3. Elija entre alternativas para unir tablas que se basan en la siguiente
precedencia.
v Relaciones que se aplican a campos clave de las tablas añadidas
v Cualquier otra relación de clave foránea
Construya una UNIÓN INTERNA entre dos tablas con la relación seleccionada
estableciendo los criterios de unión.
4. Tome el asunto de la siguiente tabla a la izquierda y vuelva a intentar el paso 2
hasta que, o bien encuentre una unión apropiada, o bien se agoten todas las
tablas a la izquierda.
5. Si no se encuentra ninguna condición de unión entre las tablas, construya una
unión predeterminada.
Si la gramática SQL no soporta una CROSS JOIN, se utiliza una INNER JOIN
con ninguna condición de unión. Puesto que esto produce una sentencia no
válida, deberá establecer una sentencia no válida, o bien mediante el recuadro
de diálogo Propiedades de la unión, o bien arrastrando columnas entre tablas.
Se utiliza una INNER JOIN sin ninguna condición de unión. Puesto que esto
produce una sentencia no válida, deberá establecer una sentencia no válida, o
bien mediante el recuadro de diálogo Propiedades de la unión, o bien
arrastrando columnas entre tablas.

Para construir una unión entre la tabla añadida y las tablas a su derecha:
1. El Creador de SQL empieza con la tabla añadida.
2. Determine si existe información de clave foránea entre la tabla añadida y la
tabla sujeto.
v Si existe una clave foránea, prosiga con el paso 3.
v Si no existe una clave foránea, salte al paso 4.
3. Elija entre las alternativas basándose en la precedencia siguiente:
v Relaciones que se aplican a campos clave de las tablas añadidas
v Cualquier otra unión

Capítulo 7. Creación de sentencias SQL 173


Construya una UNIÓN INTERNA entre dos tablas con la relación seleccionada
estableciendo los criterios de unión.
4. Tome el asunto de la siguiente tabla a la derecha y vuélvalo a intentar desde el
paso 2.
5. Si no se encuentra ninguna condición de unión entre las tablas, construya una
unión predeterminada.
Si la gramática SQL no soporta una CROSS JOIN, se utiliza una INNER JOIN
con ninguna condición de unión. Puesto que esto produce una sentencia no
válida, deberá establecer una sentencia no válida, o bien mediante el recuadro
de diálogo Propiedades de la unión, o bien arrastrando columnas entre tablas.
Se utiliza una INNER JOIN sin ninguna condición de unión. Puesto que esto
produce una sentencia no válida, deberá establecer una sentencia no válida, o
bien mediante el recuadro de diálogo Propiedades de la unión, o bien
arrastrando columnas entre tablas.

Especificación de uniones
Existen tres maneras de alterar la unión automática que el Creador de SQL inserta
al añadir más de una tabla al lienzo de selección de tablas:
v Utilizando el recuadro de diálogo Propiedades de la unión. Ábralo seleccionado
el enlace en el lienzo de selección de tablas, pulsando con el botón derecho del
ratón y eligiendo Propiedades desde el menú de atajos. Este diálogo permite
seleccionar distintos tipos de unión, elegir condiciones alternativas para la unión
o elegir una unión natural.
v Utilizando el recuadro de diálogo Alternar relación. Ábralo seleccionado el
enlace en el lienzo de selección de tablas, pulsando con el botón derecho del
ratón y eligiendo Alternar relación desde el menú de atajos. Este diálogo
permite cambiar relaciones de clave foránea que se han especificado para tablas
unidas.
v Arrastrando una columna desde una tabla a otra columna en cualquier tabla que
tenga a su derecha en el lienzo. Así se sustituye la unión automática existente y
se especifica una "equijoin" entre la columna de origen y la de destino. Si la
unión que se sustituye está especificada actualmente como una unión interna o
una unión externa, el tipo se conservará; de lo contrario, la nueva unión será
una unión interna.

Otra manera de especificar la unión es utilizando una cláusula WHERE en lugar


de una operación de unión explícita (aunque esto no es recomendable si su base de
datos soporta sentencias de unión explícitas). En dicho caso, deberá:
1. Especificar la unión como un producto cartesiano. (El Creador de SQL lo hace
SQL automáticamente si no puede determinar el tipo de unión necesario).
2. Especificar un filtro en el separador Selección del panel Filtro. Esto especifica
una cláusula WHERE que selecciona filas de dentro del producto cartesiano.

Si está utilizando un Creador de SQL para crear un Oracle 8i, un servidor SQL de
Microsoft, IBM Informix, o consultas Sybase, puede utilizar el Editor de
expresiones para especificar una condición de unión, que se implementará como
una sentencia WHERE. Oracle 8i no soporta sentencias JOIN.

Recuadro de diálogo Propiedades de unión


Este recuadro de diálogo permite cambiar el tipo de una unión existente y
modificar o especificar la condición de unión.

174 Guía de conectividad para bases de datos Oracle


El recuadro de diálogo contiene los campos siguientes:
v Producto cartesiano. El producto cartesiano es el resultado devuelto de dos o
más tablas de las que se selecciona, pero que no se unen, es decir, no se
especifica ninguna condición de búsqueda. La salida son todas las filas posibles
de todas las tablas a partir de las que se realiza la selección. Por ejemplo, si ha
realizado una selección a partir de dos tablas, la base de datos emparejará cada
fila de la primera tabla con cada fila de la segunda tabla. Si cada tabla tiene 6
filas, el producto cartesiano devolverá 36 filas.
Si el Creador de SQL no puede insertar una unión explícita basada en la
información disponible, de forma predeterminada, adoptará el Producto
cartesiano que se forma con la sintaxis CROSS JOIN en la cláusula FROM de la
sentencia SQL resultante: Primera tabla FROM - Segunda tabla CROSS JOIN.
También puede especificar un producto cartesiano seleccionando la opción
Producto cartesiano en el recuadro de diálogo Propiedades de unión. En la
unión se muestra el icono de unión cruzada.
v Unión de tabla. Seleccione la opción Unión de tabla para especificar que su
consulta contendrá una condición de unión para los tablas que se van a unir. Se
habilita el panel Condición de unión permitiendo especificar más detalles acerca
de la unión.
v Panel Condición de unión. Muestra la expresión que contendrá la condición de
unión. Puede entrar o editar la expresión manualmente o puede utilizar el botón
Menú en el panel a la derecha para especificar una unión natural, abrir el editor
de expresiones o abrir el recuadro de diálogo Alternar relación.
v Incluir. Estos campos permiten especificar que la unión debe ser una unión
externa, en la que el resultado de la consulta incluya las filas tal y como se haya
especificado en función de los datos que encontrará a continuación:
– Seleccione Todas las filas de nombre de la tabla de la izquierda para
especificar una unión externa derecha
– Seleccione Todas las filas de nombre de la tabla de la derecha para
especificar una unión externa derecha
– Seleccione Todas las filas de nombre de la tabla de la izquierda y Todas las
filas de nombre de la tabla de la derecha para especificar una unión externa
completa
v Icono Unión. Explica el tipo de unión que ha especificado.

Recuadro de diálogo Alternar relación


Este recuadro de diálogo muestra todas las relaciones de clave foránea que se han
definido entre la tabla de destino y otras tablas que aparecen a la derecha de la
misma en el lienzo de selección de tablas. Puede seleccionar la relación que desea
que aparezca como unión en su consulta, seleccionándola de forma que aparezca
en el recuadro de lista y pulsando Aceptar.

Diálogos de propiedades
Dependiendo del lugar en que se halle dentro del Creador de SQL, si selecciona
Propiedades en el menú de atajos, se abrirá un recuadro de diálogo tal como sigue:
v El recuadro de diálogo Propiedades de tabla se abre si selecciona una tabla en el
lienzo de selección de tablas y selecciona Propiedades en el menú de atajos.
v El recuadro de diálogo Propiedades de SQL se abre si selecciona el icono
Propiedades en el cuadro de herramientas o Propiedades desde el lienzo de
selección de tablas de fondo.

Capítulo 7. Creación de sentencias SQL 175


v El recuadro de diálogo Propiedades de la unión se abre si selecciona una unión
en el lienzo de selección de tablas y selecciona Propiedades en el menú de
atajos. Este diálogo se describe en el Recuadro de diálogo Propiedades de la
unión.

Recuadro de diálogo Propiedades de tabla


El recuadro de diálogo Propiedades de tabla contiene los siguientes campos:
v Nombre de tabla. Nombre de la tabla cuyas propiedades se están visualizando.
Puede pulsar el botón Menú y elegir Parámetros del trabajo para abrir el
recuadro de diálogo Parámetro (consulte Recuadro de diálogo Parámetros). Esto
permite especificar un parámetro de trabajo para sustituir el nombre de la tabla
si es necesario, pero se debe tener en cuenta que el Creador de SQL siempre
hará referencia a esta tabla utilizando su alias.
v Alias. Alias que el Creador de SQL utiliza para hacer referencia a esta tabla. Si
es necesario, puede editar el alias. Si el alias de tabla se utiliza en la cuadrícula
de selección o en filtros, si cambia el alias en este recuadro de diálogo se
actualizará el alias allí utilizado.

Recuadro de diálogo Propiedades de SQL


Este recuadro de diálogo proporciona detalles acerca de la gramática del SQL que
el Creador de SQL utiliza. Contiene los campos siguientes:
v Descripción. El número y la versión de la gramática del SQL.
La gramática del SQL depende de la etapa desde la que invoque al Creador de
SQL.
v DISTINCT. Especifica si el Creador de SQL soporta al calificador DISTINCT.
Si la etapa lo soporta, se selecciona la opción DISTINCT.

176 Guía de conectividad para bases de datos Oracle


Acceso a la documentación de productos
La documentación se proporciona en diversas ubicaciones y formatos, también en
la ayuda que se abre directamente desde la interfaz del producto, en un
Information Center para toda la suite y en manuales en archivos PDF.

El Information Center se instala como un servicio común con IBM InfoSphere


Information Server. El Information Center contiene ayuda para la mayoría de las
interfaces del producto, así como documentación completa correspondiente a todos
los módulos de producto de la suite. Puede abrir el Information Center desde el
producto instalado o bien desde un navegador Web.

Acceso al Information Center

Puede utilizar los métodos siguientes para abrir el Information Center instalado.
v Pulse el enlace Ayuda de la parte superior derecha de la interfaz de cliente.

Nota: Desde IBM InfoSphere FastTrack e IBM InfoSphere Information Server


Manager, el elemento Ayuda principal abre un sistema de ayuda local.
Seleccione Ayuda > Abrir Info Center para abrir el Information Center completo
de la suite.
v Pulse la tecla F1. La tecla F1 abre generalmente el tema que describe el contexto
actual de la interfaz de cliente.

Nota: La tecla F1 no funciona en clientes Web.


v Utilice un navegador Web para acceder al Information Center instalado, aunque
no haya iniciado sesión en el producto. Especifique la siguiente dirección en un
navegador Web: http://host_name:port_number/infocenter/topic/
com.ibm.swg.im.iis.productization.iisinfsv.home.doc/ic-homepage.html. El
nombre_host es el nombre del sistema de capa de servicios en el que está
instalado en Information Center, y número_puerto es el número de puerto para
InfoSphere Information Server. El número de puerto predeterminado es 9080.Por
ejemplo, en un sistema Microsoft® Windows® Server denominado iisdocs2, la
dirección Web tendrá este formato: http://iisdocs2:9080/infocenter/topic/
com.ibm.swg.im.iis.productization.iisinfsv.nav.doc/dochome/
iisinfsrv_home.html.

También encontrará un subconjunto del Information Center que se renueva


periódicamente en el sitio Web de IBM, en http://publib.boulder.ibm.com/
infocenter/iisinfsv/v8r5/index.jsp.

Obtener documentación en formato PDF y en papel


v También puede disponer de manuales en archivos PDF mediante el instalador
de software de InfoSphere Information Server y el soporte de distribución.
También encontrará un subconjunto de los manuales en archivos PDF en línea
que se renueva periódicamente en www.ibm.com/support/docview.wss?rs=14
&uid=swg27016910.
v También puede solicitar las publicaciones de IBM en copia impresa en línea o a
través de su representante local de IBM. Para solicitar publicaciones en línea,
vaya al Centro de publicaciones de IBM en http://www.ibm.com/e-business/
linkweb/publications/servlet/pbi.wss.

© Copyright IBM Corp. 2008, 2010 177


Facilitar comentarios sobre la documentación

Puede enviar sus comentarios sobre la documentación de los modos siguientes:


v Formulario de comentarios del lector en línea: www.ibm.com/software/data/
rcf/
v Correo electrónico: comments@us.ibm.com

178 Guía de conectividad para bases de datos Oracle


Lectura de la sintaxis de la línea de mandatos
En esta documentación se utilizan caracteres especiales para definir la sintaxis de
la línea de mandatos.

Los caracteres especiales siguientes definen la sintaxis de la línea de mandatos:


[] Identifica un argumento opcional. Los argumentos que no están entre
corchetes son obligatorios.
... Indica que puede especificar varios valores para el argumento anterior.
| indica información mutuamente excluyente. Puede utilizar el argumento de
la izquierda o bien el argumento de la derecha del separador. No puede
utilizar los dos argumentos en un solo mandato.
{} Delimita un conjunto de argumentos mutuamente excluyentes cuando se
requiere el uso de uno de los argumentos. Si los argumentos son
opcionales, se muestran entre corchetes ([ ]).

Nota:
v El número máximo de caracteres en un argumento es de 256.
v Los valores de argumento que incluyan espacios en blanco deben ir entre
comillas dobles o simples.

Por ejemplo:

wsetsrc[-S server] [-l label] [-n name] source

source es el único argumento obligatorio en el mandato wsetsrc. Los corchetes que


encierran el resto de los argumentos indican que son opcionales.

wlsac [-l | -f format] [key... ] profile

En este ejemplo, los argumentos de formato -l y -f son mutuamente excluyentes y


opcionales. El argumento profile es obligatorio. El argumento key es opcional. Los
puntos suspensivos (...) que siguen al argumento key indican que puede especificar
varios nombres de clave.

wrb -import {rule_pack | rule_set}...

En este ejemplo, los argumentos de formato -l y -f son mutuamente excluyentes y


opcionales. El argumento profile es obligatorio. El argumento key es opcional. Los
puntos suspensivos (...) que siguen al argumento key indican que puede especificar
varios nombres de clave.

© Copyright IBM Corp. 2008, 2010 179


180 Guía de conectividad para bases de datos Oracle
Accesibilidad de los productos
Puede obtener información sobre el estado de accesibilidad de los productos de
IBM.

Los módulos y las interfaces de usuario de los productos de IBM InfoSphere


Information Server no son totalmente accesibles. El programa de instalación instala
los siguientes módulos y componentes del producto:
v IBM InfoSphere Business Glossary
v IBM InfoSphere Business Glossary Anywhere
v IBM InfoSphere DataStage
v IBM InfoSphere FastTrack
v IBM InfoSphere Information Analyzer
v IBM InfoSphere Information Services Director
v IBM InfoSphere Metadata Workbench
v IBM InfoSphere QualityStage

Para obtener información sobre el estado de accesibilidad de los productos de IBM,


consulte la información de accesibilidad de productos de IBM en
http://www.ibm.com/able/product_accessibility/index.html.

Documentación sobre accesibilidad

Se proporciona documentación accesible sobre los productos de InfoSphere


Information Server en un Information Center. El Information Center presenta la
documentación en formato XHTML 1.0, que se puede ver en la mayoría de
navegadores web. El formato XHTML permite establecer propiedades de
visualización en el navegador. También permite utilizar lectores de pantalla y otras
tecnologías de asistencia para acceder a la documentación.

IBM y la accesibilidad

Consulte el IBM Human Ability and Accessibility Center para obtener más
información sobre el compromiso de IBM con respecto a la accesibilidad:

© Copyright IBM Corp. 2008, 2010 181


182 Guía de conectividad para bases de datos Oracle
Cómo ponerse en contacto con IBM
Puede ponerse en contacto con IBM para obtener soporte al cliente, servicios de
software, información sobre el producto e información general. También puede
facilitar comentarios a IBM acerca de productos y documentación.

La siguiente tabla enumera los recursos para soporte al cliente, servicios de


software, formación, e información de productos y soluciones.
Tabla 24. Recursos de IBM
Recurso Descripción y ubicación
Portal de soporte de IBM Puede personalizar la información de
soporte seleccionando los productos y los
temas que sean de su interés en
www.ibm.com/support/entry/portal/
Software/Information_Management/
InfoSphere_Information_Server
Servicios de software Puede encontrar información sobre servicios
de software, de tecnologías de la
información y de consultoría empresarial en
el sitio de soluciones, en
www.ibm.com/businesssolutions/
Mi IBM Puede gestionar enlaces a sitios web de IBM
y a información que satisfaga sus
necesidades específicas de soporte técnico
creando una cuenta en el sitio Mi IBM:
www.ibm.com/account/
Formación y certificación Puede obtener información sobre formación
técnica y servicios de educación diseñados
para personas, empresas y organizaciones
públicas, a fin de adquirir, mantener y
optimizar sus habilidades de TI en
http://www.ibm.com/software/sw-
training/
Representantes de IBM Puede contactar con un representante de
IBM para obtener información sobre
soluciones en www.ibm.com/connect/ibm/
us/en/

Facilitar comentarios

La tabla siguiente describe la forma en que se facilitan comentarios a IBM acerca


de productos y documentación de productos.
Tabla 25. Facilitar comentarios a IBM
Tipo de comentarios Acción
Comentarios sobre productos Puede proporcionar comentarios generales
sobre productos mediante la encuesta de
consumo en el sitio web
www.ibm.com/software/data/info/
consumability-survey

© Copyright IBM Corp. 2008, 2010 183


Tabla 25. Facilitar comentarios a IBM (continuación)
Tipo de comentarios Acción
Comentarios sobre la documentación Para realizar comentarios acerca del
Information Center, pulse el enlace
Comentarios situado en la parte superior
derecha de cualquiera de los temas del
Information Center. También puede enviar
sus comentarios sobre los manuales en
archivos PDF, el Information Center o
cualquier otra documentación de los
siguientes modos:
v Formulario de comentarios del lector en
línea: www.ibm.com/software/data/rcf/
v Correo electrónico: comments@us.ibm.com

184 Guía de conectividad para bases de datos Oracle


Avisos y marcas registradas
La presente información se ha desarrollado para productos y servicios ofrecidos en
Estados Unidos.

Avisos

Es posible que IBM no comercialice en otros países los productos, servicios o


características que se describen en este manual. Consulte al representante local de
IBM para obtener información sobre los productos y servicios que actualmente
pueden adquirirse en su zona. Cualquier referencia a un producto, programa o
servicio de IBM no pretende afirmar ni implicar que sólo se pueda utilizar dicho
producto, programa o servicio de IBM. En su lugar se puede utilizar cualquier
producto, programa o servicio funcionalmente equivalente que no vulnere ninguno
de los derechos de propiedad intelectual de IBM. Sin embargo, es responsabilidad
del usuario evaluar y verificar el funcionamiento de cualquier producto, programa
o servicio que no sea de IBM.

IBM puede tener patentes o solicitudes de patentes en tramitación que afecten al


tema tratado en este documento. La posesión de este documento no otorga
ninguna licencia sobre dichas patentes. Puede enviar consultas sobre licencias, por
escrito, a la siguiente dirección:

IBM Director of Licensing


IBM Corporation
North Castle Drive
Armonk, NY 10504-1785 EE. UU.

Para formular consultas relacionadas con el juego de caracteres de doble byte


(DBCS), póngase en contacto con el departamento de la propiedad intelectual de
IBM de su país o envíe las consultas, por escrito, a la siguiente dirección:

Intellectual Property Licensing


Legal and Intellectual Property Law
IBM Japan Ltd.
1623-14, Shimotsuruma, Yamato-shi
Kanagawa 242-8502 Japón

El párrafo siguiente no es aplicable al Reino Unido ni a ningún país en donde


tales disposiciones sean incompatibles con la legislación local:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA
ESTA PUBLICACIÓN TAL CUAL, SIN GARANTÍA DE NINGUNA CLASE, NI
EXPLÍCITA NI IMPLÍCITA, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LAS
GARANTÍAS IMPLÍCITAS DE NO VULNERACIÓN DE DERECHOS,
COMERCIALIZACIÓN O IDONEIDAD PARA UN FIN DETERMINADO. Algunos
estados no permiten la declaración de limitación de responsabilidad de garantías
expresas o implícitas en determinadas transacciones. Por consiguiente, es posible
que esta declaración no se aplique en su caso.

Esta información podría contener imprecisiones técnicas o errores tipográficos. La


información de este documento está sujeta a cambios periódicos; dichos cambios se
incorporarán en nuevas ediciones de la publicación. Es posible que IBM realice

© Copyright IBM Corp. 2008, 2010 185


mejoras o efectúe cambios en el(los) producto(s) y/o el(los) programa(s) descritos
en esta publicación en cualquier momento sin previo aviso.

Las referencias hechas en esta publicación a sitios Web que no son de IBM se
proporcionan sólo para la comodidad del usuario y no constituyen un aval de esos
sitios Web. La información contenida en estos sitios Web no forma parte de la
información del presente producto IBM, y el usuario es responsable de la
utilización de dichos sitios.

IBM puede utilizar o distribuir cualquier información que se le facilite de la


manera que considere adecuada, sin contraer por ello ninguna obligación con el
remitente.

Los licenciatarios de este programa que deseen obtener información sobre él con el
fin de habilitar: (i) el intercambio de información entre programas creados de
forma independiente y otros programas (incluido éste) y (ii) el uso mutuo de la
información intercambiada, deben ponerse en contacto con:

IBM Corporation
J46A/G4
555 Bailey Avenue
San José, CA 95141-1003 EE.UU.

Dicha información puede estar disponible, sujeta a los términos y condiciones


apropiados, incluido en algunos casos el pago de una tarifa.

El programa bajo licencia descrito en este documento y todo el material bajo


licencia asociado a él los proporciona IBM según los términos del Acuerdo de
Cliente de IBM, el Acuerdo Internacional de Programas Bajo Licencia de IBM o
cualquier acuerdo equivalente entre el usuario e IBM.

Los datos de rendimiento contenidos en este documento se obtuvieron en un


entorno controlado. Por consiguiente, es posible que los resultados obtenidos en
otros entornos operativos varíen de forma significativa. Algunas mediciones
pueden haberse realizado en sistemas experimentales y no es seguro que estas
mediciones sean las mismas en los sistemas disponibles comercialmente. Además,
algunas mediciones pueden haberse calculado mediante extrapolación. Los
resultados reales pueden variar. Los usuarios del presente manual deben verificar
los datos aplicables para su entorno específico.

La información relacionada con productos ajenos a IBM se ha obtenido a partir de


los proveedores de dichos productos, los anuncios que han publicado u otras
fuentes de dominio público. IBM no ha probado dichos productos ni puede
confirmar la precisión del rendimiento, la compatibilidad ni ninguna otra
afirmación sobre productos ajenos a IBM. Las preguntas sobre las prestaciones de
productos que no son de IBM deben dirigirse a los proveedores de esos productos.

Todas las declaraciones de intenciones de IBM están sujetas a cambio o cancelación


sin previo aviso, y sólo representan objetivos.

Esta información sólo tiene como objeto la planificación. La información de este


documento está sujeta a cambios antes de que los productos descritos estén
disponibles.

Este manual contiene ejemplos de datos e informes que se utilizan en operaciones


comerciales diarias. Para ilustrarlos de la forma más completa posible, los ejemplos

186 Guía de conectividad para bases de datos Oracle


incluyen nombres de personas, empresas, marcas y productos. Todos estos
nombres son ficticios y cualquier similitud con nombres y direcciones utilizados
por una empresa real es totalmente fortuita.

LICENCIA DE COPYRIGHT:

Esta información contiene programas de aplicación de ejemplo en código fuente


que ilustran técnicas de programación en diferentes plataformas operativas. Puede
copiar, modificar y distribuir estos programas de ejemplo de cualquier forma, sin
pagar a IBM, con la finalidad de desarrollar, utilizar o distribuir programas de
aplicación que se ajusten a la interfaz de programación de aplicaciones para la
plataforma operativa para la que se han escrito los programas de ejemplo. Estos
ejemplos no se han probado exhaustivamente bajo todas las condiciones. Por lo
tanto, IBM no puede asegurar ni implicar la fiabilidad, utilidad o función de estos
programas. Los programas de ejemplo se proporcionan "tal como están", sin
garantías de ningún tipo. IBM no se hace responsable de los daños que se hayan
podido causar debido al uso de los programas de ejemplo.

Todas las copias o partes de estos programas de ejemplo, o cualquier trabajo


derivado, deberán incluir un aviso de copyright como el siguiente:

© (nombre de la empresa) (año). Partes de este código provienen de programas de


ejemplo de IBM Corp. © Copyright IBM Corp. _entrar el año o los años_.
Reservados todos los derechos.

Si está visualizando esta información en copia software, es posible que las


fotografías o las ilustraciones en color no aparezcan.

Marcas registradas

IBM, el logotipo de IBM e ibm.com son marcas registradas de International


Business Machines Corp. en muchos países o regiones de alrededor del mundo.
Otros nombres de productos y servicios pueden ser marcas registradas de IBM u
otras empresas. Encontrará una lista actualizada de las marcas registradas de IBM
en www.ibm.com/legal/copytrade.shtml.

Los términos siguientes son marcas registradas de otras compañías:

Adobe es una marca registrada de Adobe Systems Incorporated en los Estados


Unidos y/o en otros países.

Linux es una marca registrada de Linus Torvalds en los Estados Unidos y/o otros
países.

Microsoft, Windows, Windows NT y el logotipo de Windows son marcas


registradas de Microsoft Corporation en los Estados Unidos y/o otros países.

UNIX es una marca registrada de The Open Group en Estados Unidos y en otros
países.

Java y todas las marcas basadas en Java son marcas registradas de Sun
Microsystems, Inc. en los EE.UU. y/o otros países.

El servicio postal de los Estados Unidos (United States Postal Service) es


propietario de las siguientes marcas registradas: CASS, CASS Certified, DPV,
LACSLink, ZIP, ZIP + 4, ZIP Code, Post Office, Postal Service, USPS y United States

Avisos y marcas registradas 187


Postal Service. IBM Corporation tiene titularidad no exclusiva de licencias de DPV
y LACSLink de United States Postal Service.

Otros nombres de empresas, productos o servicios pueden ser marcas registradas o


marcas de servicio de otros.

188 Guía de conectividad para bases de datos Oracle


Enlaces a sitios web que no son de IBM
Este Information Center puede proporcionar enlaces o referencias a recursos y
sitios web que no son de IBM.

IBM no representa, garantiza ni adquiere otros compromisos de sitios web que no


sean de IBM ni recursos de terceros (incluidos los sitios web de Lenovo) a los que
pueda hacerse referencia o estén accesibles o haya enlaces en cualquiera de los
sitios web de IBM. Un enlace a un sitio web que no sea de IBM no implica que
IBM apruebe el contenido o el uso de dicho sitio web o de su propietario. Además,
IBM no forma parte ni es responsable de ninguna transacción que el usuario pueda
adquirir con terceros, aunque haya conocido a dichos terceros (o haya utilizado un
enlace a ellos) desde un sitio web de IBM. En consecuencia, el usuario reconoce y
acepta que IBM no es responsable de la disponibilidad de tales sitios o recursos
externos, ni es responsable del contenido, servicios, productos u otros materiales
disponibles en estos sitios o recursos.

Cuando acceda a un sitio web que no sea de IBM, incluso aunque contenga el
logotipo de IBM, debe comprender que es independiente de IBM, y que IBM no
controla el contenido de dicho sitio web. Es responsabilidad del usuario tomar las
precauciones necesarias para protegerse frente a virus, gusanos, troyanos y otros
programas potencialmente destructivos, así como proteger su información como
estime oportuno.

© Copyright IBM Corp. 2008, 2010 189


190 Guía de conectividad para bases de datos Oracle
Índice
A cargas masivas (continuación)
tamaño de almacenamiento
distinción entre mayúsculas y
minúsculas (continuación)
accesibilidad de los productos intermedio, configurar 118 ejemplos 119
accesibilidad 181 tamaño de matriz, configurar 118 distinción entre mayúsculas y
acceso a bases de datos Oracle 10 categoría Conexión 26, 34 minúsculas 119
acciones en tabla categoría Destino 24
configuración 111 categoría Opciones 27, 35
actualización de una base de datos
Oracle 17
categoría Origen 33
columnas
E
actualización de una tabla de Oracle 16 ejemplos
correlación 97, 144
agente ASB archivo de configuración paralelo 83
definir 96
descripción 78 búsquedas 76
Columnas
agrupaciones de nodos enlace de rechazo 75
correlación 109
configuración 82 grabación de datos 75
propagar en tiempo de ejecución 109
archivo de configuración paralelo lectura de datos 74
comillas
ubicación, especificar 82 migración tras error transparente de la
utilizar para conservar la distinción
valor predeterminado 82 aplicación 123
entre mayúsculas y minúsculas 119
variable de entorno restringir nodos 83
condiciones de error
APT_CONFIG_FILE y 82 transferir datos XMLType 140
configuración 111, 117
archivo de registro Enlace de entrada
conexiones
estadísticas de memoria caché de descartar campos que no
definir 95
fechas 116 coincidan 110
gestores de recursos Oracle y 121
mensajes, informar 126 enlaces
conexiones de base de datos
archivo default.apt crear 80
definir 95
ubicación 82 ordenación 81
configuración
archivo tnsnames.ora procesar registro 81
conector Oracle 73
modalidad FAILOVER, rechazo 103
contenedores 1
configurar 122 enlaces de entrada
migrar para utilizar conectores 2, 3
ubicación de 73, 95 ordenación 81
contenido BFILE
avisos legales 185 ordenar registros 81
transferir 138
enlaces de rechazo
control de acceso
configuración 103
establecimiento 77
B conversión de tipos de datos
entorno Oracle
registrar información acerca de 125
bloque PL/SQL grabación en Oracle 13
Etapa Distributed Transaction
palabras clave necesarias 100 lectura desde Oracle 14
conector Oracle y 121
búsqueda en una tabla de Oracle 14 correlación
etapa Oracle Enterprise 9
búsquedas tipos de datos 141, 144
etapas
configuración 76 Correlación
añadir a la paleta 7
enlaces necesarios 80 columnas 109
etapas de servidor
Correlación de soporte
Creador de SQL 49
multilingüístico 20
etapas Oracle 9
C Creador de SQL
etapas de servidor 49
propiedades de entrada 21
Campos propiedades de salida 32
etapas Oracle OCI 49
descartar los que no coincidan 110 etapas Oracle OCI
caracteres acción de actualización, páginas
distinción entre mayúsculas y Entrada 43
minúsculas 119 D agrupación de transacciones 38, 45,
espacio en blanco 120 DataStage 46, 47, 48
NULL 120 definiciones de columna 144 base de datos Oracle, conexión 40
carga automática, Oracle OCI Load 66 datos LOB borrado de tablas 43, 49
carga de tablas 12 transferir 138 carácter de almohadilla (#) 62
carga de una base de datos Oracle 18 datos XMLType carácter de signo de dólar ($) 62
carga masiva de archivos externos ejemplos de transferencia 140 caracteres especiales 62
etapas Oracle OCI Load 65, 67 transferir 138 cláusula FROM 52, 55
cargas masivas definiciones de columna cláusula GROUP BY 52, 55
desencadenantes, gestionar 115 DataStage 144 cláusula HAVING 52, 55
índices y 117 Oracle 144 cláusula ORDER BY 52, 55
memoria caché de fechas y 116 desencadenantes cláusula WHERE 52, 53, 55
restricciones de tabla, gestionar 115 gestión 115 conexión con bases de datos
tabla de excepciones y 115 distinción entre mayúsculas y minúsculas Oracle 40
conservar 119

© Copyright IBM Corp. 2008, 2010 191


etapas Oracle OCI (continuación)
consultas SQL
etapas Oracle OCI (continuación)
sentencia SELECT 51, 53, 55
G
Creador de SQL 52 sentencia UPDATE 49, 50 grabación de datos en tablas de Oracle
definidas en tiempo de sentencias SQL etapas Oracle OCI 42, 51
ejecución 52 cláusula FROM 52, 55 grabaciones
definidas por el usuario 52, 55 cláusula GROUP BY 52, 55 configuración 75
en archivo 56 cláusula HAVING 52, 55 enlaces necesarios 80
generadas 52, 54, 55 cláusula ORDER BY 52, 55 paralelo
consultas SQL generadas 52, 54, 55 cláusula WHERE 52, 53, 55 Véase grabaciones en paralelo
consultas SQL generadas por la DELETE 50 particionadas
columna. Consulte las consultas SQL ejemplos 50, 55, 56 Véase grabaciones particionadas
generadas. 52 INSERT 50
conversión de proyectos de Oracle SELECT 51, 53, 55
8 41 sintaxis 55 H
correlación de juego de caracteres 40, UPDATE 50 Herramienta de migración de conectores
41 sentencias SQL definidas por el interfaz de línea de mandatos 3
creación de tablas 43, 44, 46, 47, 56 usuario Herramienta de migración de conectores
Creador de SQL 42, 49, 51, 52 grabación de datos en Oracle 50 interfaz de usuario 2
definición sentencias SQL generadas
conexiones OCI 41 grabación de datos en Oracle 49
correlación de juego de
caracteres 40, 41
SQL 49
SQL, definidas por el usuario 43, 50,
I
datos de entrada OCI 42, 48 52 indicaciones de horas
datos de salida de OCI 51, 54 SQL definido por el usuario 43, 50, parámetros de sesión NLS y 137
descarte de tablas 44 52, 55 índices
edición de una etapa ORAOCI9 40 tablas cargas masivas y 117
enlaces de entrada 37, 42, 43, 47, 48, borrado 43, 49 recrear 117
50, 56 creación 43, 44, 46, 47, 56
enlaces de referencia 37 grabación en 49, 51
enlaces de salida 37, 40, 51, 53, 55, 56 lectura de 54, 56 L
funcionalidad 38 tamaño de matriz lectura de datos de tablas de Oracle
generación de sentencias SQL especificación 44 etapas Oracle OCI 51, 56
para grabar datos 44, 45, 49 tipo de consulta 42 lectura de una base de datos Oracle 18
para leer datos 54 tipo de datos CLOB 62 lecturas
introducción 37 tipo de datos DATE 56, 60 Véase también lecturas en paralelo
lectura de datos de Oracle 56 tipos de datos Véase también lecturas particionadas
lectura de datos Oracle 54 carácter 56 configuración 74
manejo CLOB 62 enlaces necesarios 80
errores 45 DATE 56, 60 paralelo 74
filas rechazadas 48 numéricos 57 particionadas 74
manejo de errores 45 soporte de 56 lecturas en paralelo
manejo de filas de rechazo 48 tipos de datos de carácter 56 configuración 84
manejo de transacciones 47, 48 tipos de datos numéricos 57 lecturas particionadas
mensajes de aviso 45 ventana Cláusulas SQL 52, 55 configuración 84
Navegador de datos 42 ventana Etapa ORAOCI9 40, 42, 50, ejemplos 88
nombre de tabla 43 51 longitud
nombres de tabla o de columna que ventanas especificación 141
distinguen entre mayúsculas y Cláusulas SQL 52, 55 juegos de caracteres
minúsculas 45 etapa ORAOCI9 42, 50, 51 especificación 141
página Entrada 48 etapas Oracle OCI Load
Página Entrada 40, 42 carga automática 66
acción de actualización para 43
nombre de tabla para 43
carga manual 66
descripción 65
M
separador General 42 funcionalidad 65 manejo de caracteres especiales (# y
página Etapa 39 introducción 65 $) 11
Página Etapa 41 modalidades de carga 66 marcadores de fin de oleada
página Salida 40, 51, 54 propiedades 67 configuración 108
recuadro de diálogo Etapa requisitos de configuración 65, 66 marcadores de nodo
ORAOCI9 51 sustituir por números 113
recuadros de diálogo memoria caché de fechas
configuración 116
etapa ORAOCI9 40, 51
Repositorio 44
F estadísticas 116
fechas mensajes
requisitos de configuración 39
parámetros de sesión NLS y 137 aviso 132
sentencia CREATE TABLE 44, 46, 50
filas depurar 135
sentencia DELETE 49, 50
captar previamente 107 informativos 135
sentencia DROP TABLE 44, 46, 47
rechazado, gestionar 103 muy grave 127
sentencia INSERT 49, 50
niveles de gravedad 126

192 Guía de conectividad para bases de datos Oracle


mensajes (continuación)
rastreo 135
página Salidas 31
paleta
S
metadatos visualizar etapas 7 script utlexcpt.sql
importación 78 parámetro de base de datos ubicación de 115
método de lectura particionada de hash NLS_CHARACTERSET 141 script utlexcpt1.sql
de rowid parámetro de base de datos ubicación de 115
descripción 86 NLS_LENGTH_SEMANTICS 141 scripts
ejemplo 88 parámetro de sesión tabla de excepciones 115
método de lectura particionada de NLS_CALENDAR 137 sentencias SELECT
iteración cíclica de rowid parámetro de sesión datos XMLType y 138
descripción 86 NLS_DATE_FORMAT 137 especificación 100
ejemplo 88 parámetro de sesión sentencias SQL
método de lectura particionada de NLS_DATE_LANGUAGE 137 distinción entre mayúsculas y
módulo parámetro de sesión minúsculas y 119
descripción 86 NLS_TIME_FORMAT 137 ejecutar antes o después de de
ejemplo 88 parámetro de sesión procesar datos 112
método de lectura particionada de NLS_TIMESTAMP_FORMAT 137 separador Avanzado 19
rango mínimo y máximo parámetro de sesión separador Particionamiento 29
descripción 86 NLS_TIMESTAMP_TZ_FORMAT 137 separador Propiedades del enlace de
ejemplo 88 parámetros entrada 21
método de lectura particionada de búsquedas separador Propiedades del enlace de
particiones Oracle descripción 76 salida 32
descripción 86 búsquedas y 76 servicios
ejemplo 88 especificación 97 conectar 95
método de lectura particionada de rango parámetros de sesión NLS valor predeterminado 95
de rowid especificación 137 servicios de software 183
descripción 86 particiones servicios Oracle
ejemplo 88 restricciones de trabajo y 82 conectar 95
métodos de lectura particionada privilegios de usuario sintaxis
descripción 86 establecimiento 77 nombre de tabla 84
migración tras error propiedades parámetros 97
configuración 122 entrada de etapa Oracle 21 serie Easy Connect 95
migración tras error transparente de la salida de la etapa Oracle 32 sintaxis de la línea de mandatos
aplicación caracteres especiales
configuración 122 en mandatos 179
convenciones 179
ejemplos 123
migrar para utilizar conectores 1
R mandatos línea de mandatos
realización de una búsqueda directa en sintaxis 179
modalidad de grabación
una tabla de base de datos Oracle 19 sintaxis Oracle
especificación 101
realización de una búsqueda en memoria parámetros y 97
tipos descritos 101
en una tabla de base de datos sintaxis Orchestrate
modalidad de lectura
Oracle 19 parámetros y 97
especificación 100
registro cronológico Sitios web
modalidades de carga, etapas Oracle OCI
información de entorno Oracle 125 no de IBM 189
Load 66
parámetros de base de datos sitios web no de IBM
NLS 125 enlaces a 189
parámetros de sesión NLS 125 soporte
N variable de entorno NLS_LANG 125 cliente 183
Nivel de aislamiento registro de rehacer soporte al cliente 183
establecimiento 106 gestión 117 supresión de filas de una base de datos
nodos registros Oracle 17
configuración 82 captar previamente 107
nombres de tabla ordenación 81
sintaxis para especificar 84
números de nodo
proceso 81
rechazado, gestionar 103
T
configurar la utilización de 113 resolución de problemas tabla de excepciones
archivos de registro y 125 formatos 115
restricciones tablas
crear 144
O nodo 82
restricciones de tabla crear antes de grabar 111
Oracle sustituir antes de grabar 111
gestión 115
definiciones de columna 144 truncar antes de grabar 111
roles
otro tipo de datos 141 tablas organizadas mediante índices
crear 77
(Oracle) 13, 28
tamaño de matriz
P establecimiento 108, 118
página Entradas 21 tareas necesarias 17
Página Etapa 19 tipo de datos BFILE 141

Índice 193
tipo de datos BigInt 144 tipos de datos tipo de datos vista de diccionario
tipo de datos Binary 144 (continuación) ALL_PART_COL_STATISTICS 148
tipo de datos BINARY_DOUBLE 141 tipo de datos VARCHAR 141 vista de diccionario
tipo de datos BINARY_FLOAT 141 tipo de datos VARCHAR2 141 ALL_PART_KEY_COLUMNS 148
tipo de datos Bit 144 tipos de grabación particionada vista de diccionario
tipo de datos BLOB 141 descripción 92 ALL_PART_TABLES 148
tipo de datos Char 144 trabajos 1 vista de diccionario
tipo de datos CLOB 141 anomalía, controlar 126 ALL_TAB_COLS 148
tipo de datos Date 144 compilar 106 vista de diccionario
tipo de datos DATE 141 crear 74, 75, 76, 80 ALL_TAB_SUBPARTITIONS 148
tipo de datos Decimal 144 ejecución 106 vista de diccionario ALL_TABLES 148
tipo de datos DECIMAL 141 migrar para utilizar conectores 2, 3 vista de diccionario ALL_VIEWS 148
tipo de datos DOUBLE 141 parámetros, especificar 82 vista de diccionario DBA_EXTENTS 148
Tipo de datos Double 144 restricciones, configurar 82 acceso 77
tipo de datos Float 144 transacciones vista de diccionario DUAL 148
tipo de datos FLOAT 141 confirmar 106, 112 vista de diccionario
tipo de datos Integer 144 recuento de registros, especificar 108 USER_TAB_PRIVS 148
tipo de datos INTERVAL DAY TO vistas de diccionario
SECOND 141 acceso 77
tipo de datos INTERVAL YEAR TO
MONTH 141
V descripción 148
valores
tipo de datos LONG 141
relleno 120
tipo de datos LONG RAW 141
serie vacía 120
tipo de datos LongNVarChar 144
texto 120
tipo de datos LONGNVARCHAR 141
variable de entorno APT_CONFIG_FILE
tipo de datos LongVarBinary 144
archivo de configuración paralelo
tipo de datos LONGVARBINARY 141
y 82
tipo de datos LONGVARCHAR 141
variable de entorno
tipo de datos NChar 144
CC_MSG_LEVEL 150
tipo de datos NCLOB 141
configuración 126
tipo de datos NUMBER 141
variable de entorno
tipo de datos Numeric 144
CC_ORA_BIND_KEYWORD 150
tipo de datos NVarChar 144
variable de entorno
tipo de datos
CC_ORA_CHECK_CONVERSION 150
OBJECT_RELATIONAL 141
variable de entorno
tipo de datos RAW 141
CC_ORA_MAX_ERRORS_REPORT 150
tipo de datos ROWID 141
variable de entorno
tipo de datos SmallInt 144
CC_ORA_NLS_LANG_ENV 150
tipo de datos Time 144
variable de entorno
tipo de datos Timestamp 144
CC_ORA_NODE_USE_PLACEHOLDER 150
tipo de datos TIMESTAMP 141
variable de entorno de la vía de acceso
tipo de datos TIMESTAMP WITH
de la biblioteca 150
LOCAL TIME ZONE 141
variable de entorno de la vía de acceso
tipo de datos TIMESTAMP WITH
de la bibliotecavariable de entorno
TIME 141
NLS_LANG
tipo de datos TinyInt 144
establecimiento 73
tipo de datos UNKNOWN 141
variable de entorno LOCAL 150
Tipo de datos Unknown 144
configuración 95
tipo de datos UROWID 141
variable de entorno
tipo de datos VARBINARY 141
ORACLE_HOME 150
tipo de datos VarChar 144
establecimiento 73
tipo de datos XMLTYPE 141
variable de entorno ORACLE_SID
tipo de grabación particionada del
configuración 95
conector Oracle
variable de entorno ORACLE-SID 150
descripción 92
variable de entorno TNS_ADMIN 150
tipo VarBinary 144
establecimiento 73
tipos de datos
variable de entorno TWO_PHASE
correlación 141, 144
configuración 95
fecha y hora de Oracle 137
variable de entorno TWO_TASK 150
LOB de Oracle 138
configuración 95
XMLType 138
variables de entorno
tipos de datos tipo de datos
descripción 150
correlación de Oracle con
necesario 73
DataStage 141
vista de diccionario
NVARCHAR 141
ALL_CONSTRAINTS 148
tipo de datos CHAR 141
vista de diccionario ALL_INDEXES 148
tipo de datos NCHAR 141
vista de diccionario ALL_OBJECTS 148

194 Guía de conectividad para bases de datos Oracle




Impreso en España

SC11-3560-03
Spine information:

IBM InfoSphere DataStage y QualityStage Versión 8 Release 5 Guía de conectividad para bases de datos Oracle


También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy