WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Sentencia PASSTHRU

La sentencia PASSTHRU evalúa una expresión y ejecuta la serie de caracteres resultante como una sentencia de base de datos.

Leer el esquema de sintaxisOmitir el esquema de sintaxis visual
>>-PASSTHRU----------------------------------------------------->

>--+-Expresión--+-------------------------+--+-----------------------------+-+-><
   |            '-TO--ReferenciaBaseDatos-'  |            .-,---------.    | |   
   |                                         |            V           |    | |   
   |                                         '-VALUES--(----Expresión-+--)-' |   
   |  (1)                                                                    |   
   '-------(--Expresión--+------------------+--)-----------------------------'   
                         |    .-,---------. |                                    
                         |    V           | |                                    
                         '-,----Expresión-+-'                                    

WHERE

|--ReferenciaBaseDatos =  --Database--.--CláusulaOrigenDatos----|

Notas:
  1. La mitad inferior del diagrama principal de sintaxis (la segunda de las dos maneras de codificar la Expresión que se pasa a PASSTHRU) describe sintaxis que se conserva por compatibilidad con versiones anteriores.

Uso

El uso principal de la sentencia PASSTHRU es emitir mandatos administrativos a las bases de datos (por ejemplo, para crear una tabla).
Nota: No utilice PASSTHRU para llamar a los procedimientos almacenados, en su lugar, utilice la sentencia CALL porque PASSTHRU impone limitaciones (por ejemplo, no puede utilizar parámetros de salida).

Se evalúa la primera expresión y la serie de caracteres resultante se pasa a la base de datos que indica la ReferenciaBaseDatos (en la cláusula TO) para su ejecución. Si no se especifica la cláusula TO, se utiliza la base de datos que indica el atributo data source del nodo.

Use signos de interrogación (?) en la serie de caracteres de la base de datos para indicar parámetros. Los valores de parámetro los proporciona la cláusula VALUES.

Si se especifica la cláusula VALUES, se evalúan sus expresiones y se pasan a la base de datos como parámetros; (es decir, se sustituyen los signos de interrogación por los valores de las expresiones en la sentencia de base de datos).

Si sólo hay una expresión VALUE, el resultado puede ser o no una lista. Si es una lista, se sustituyen secuencialmente los signos de interrogación por los valores escalares de la lista. Si no es una lista, el (único) signo de interrogación se sustituye por el único valor escalar, en la sentencia de base de datos. Si hay más de una expresión VALUE, ninguna de las expresiones se evalúa en una lista sino que, en su lugar, sus valores escalares se sustituyen secuencialmente por los signos de interrogación.

Puesto que la sentencia de base de datos la construye el programa de usuario, no es esencial utilizar marcadores de parámetros (es decir, signos de interrogación) o la cláusula VALUES, porque el programa puede proporcionar la sentencia de base de datos entera como una serie de caracteres literales. Sin embargo, utilice marcadores de parámetros siempre que sea posible, porque así se reduce el número de sentencias distintas que deben prepararse y almacenarse en la base de datos y el intermediario.

Referencia de base de datos

Una referencia de base de datos es un caso especial de referencias de campo que se utilizan para hacer referencia a los árboles de mensaje. Consta de la palabra Database seguida de un nombre de origen de datos (es decir, el nombre de una instancia de base de datos).

Puede especificar el nombre del origen de datos directamente o mediante una expresión encerrada entre llaves ({...}). Un nombre de origen de datos especificado directamente, puede ser sustituido. Es decir, si el nombre utilizado se ha declarado como un nombre conocido, se utiliza más bien el valor del nombre declarado en lugar del nombre mismo (consulte Sentencia DECLARE).

Si ha creado un flujo de mensajes que contiene uno de los nodos siguientes y el ESQL que está asociado a este nodo incluye una sentencia PASSTHRU y una referencia a base de datos, debe especificar un valor para la propiedad Origen de datos del nodo relevante:
  • Compute
  • Database
  • Filter

Manejo de errores

Es posible que se produzcan errores durante las operaciones de PASSTHRU. Por ejemplo, es posible que la base de datos no esté operativa o que la sentencia no sea válida. En estos casos, se genera una excepción (a menos que el nodo tenga su propiedad Generar excepción en error de base de datos borrada). Estas excepciones establecen los valores SQL adecuados de código, estado, error nativo y texto de error, y pueden ser manejadas por los manejadores de errores (consulte la sentencia DECLARE HANDLER).

Para obtener más información sobre el manejo de errores de base de datos, consulte Captura del estado de la base de datos.

Ejemplos

El ejemplo siguiente crea la tabla Customers en el esquema Shop en la base de datos DSN1:
PASSTHRU 'CREATE TABLE Shop.Customers (
  CustomerNumber INTEGER,
  FirstName      VARCHAR(256),
  LastName       VARCHAR(256),
  Street         VARCHAR(256),
  City           VARCHAR(256),
  Country        VARCHAR(256)
)' TO Database.DSN1;
Si, como en el último ejemplo, la sentencia ESQL se especifica como un literal de serie de caracteres, debe encerrarla entre apóstrofos. Sin embargo, si se especifica como una variable, omita los apóstrofos. Por ejemplo:
SET myVar = 'SELECT * FROM user1.stocktable';
SET OutputRoot.XMLNS.Data[] = PASSTHRU(myVar);
El ejemplo siguiente suprime ("drop") la tabla Customers del esquema Shop en la base de datos DSN1:
PASSTHRU 'DROP TABLE Shop.Customers' TO Database.DSN1; 
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:59:55


Tema de referenciaTema de referencia | Versión 8.0.0.5 | ak05100_