WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Instrução PASSTHRU

A instrução PASSTHRU avalia uma expressão e executa a cadeia de caracteres resultante como uma instrução de banco de dados.

Ler diagrama de sintaxeManter visual do diagrama de sintaxe
>>-PASSTHRU----------------------------------------------------->

>--+-Expression--+-----------------------+--+------------------------------+-+-><
   |             '-TO--DatabaseReference-'  |            .-,----------.    | |   
   |                                        |            V            |    | |   
   |                                        '-VALUES--(----Expression-+--)-' |   
   |  (1)                                                                    |   
   '-------(--Expression--+-------------------+--)---------------------------'   
                          |    .-,----------. |                                  
                          |    V            | |                                  
                          '-,----Expression-+-'                                  

WHERE

|--DatabaseReference =  --Database--.--DataSourceClause---------|

Notas:
  1. A metade inferior do diagrama de sintaxe principal (a segunda das duas maneiras de codificar a Expression a ser transmitida para PASSTHRU) descreve a sintaxe mantida para retrocompatibilidade.

Utilização

O uso principal da instrução PASSTHRU é a emissão de comandos administrativos para bancos de dados (por exemplo, para criar uma tabela).
Nota: Não utilize PASSTHRU para a chamada de procedimentos armazenados; ao invés, use a instrução CALL porque PASSTHRU impõe limites (você não pode utilizar parâmetros de saída, por exemplo).

A primeira expressão é avaliada e a cadeia de caracteres resultante é transmitida para o banco de dados apontado por DatabaseReference (na cláusula TO) para execução. Se a cláusula TO não for especificada, será utilizado o banco de dados apontado pelo atributo data source do nó.

Utilize pontos de interrogação (?) na cadeia de banco de dados para indicar parâmetros. Os valores de parâmetros são fornecidos pela cláusula VALUES.

Se a cláusula VALUES for especificada, suas expressões serão avaliadas e transmitidas ao banco de dados como parâmetros; (ou seja, os pontos de interrogação serão substituídos pelos valores das expressões na instrução de banco de dados).

Se apenas uma expressão VALUE existir, o resultado pode ou não ser uma lista. Se for uma lista, os pontos de interrogação serão substituídos pelos valores escalares da lista, seqüencialmente. Se não for uma lista, o ponto de interrogação (único) será substituído pelo valor escalar único na instrução de banco de dados. Se mais de uma expressão VALUE existir, nenhuma das expressões é avaliada para uma lista; seus valores escalares são substituídos seqüencialmente pelas interrogações, ao invés.

Como a instrução do banco de dados é construída pelo programa do usuário, não é essencial a utilização de marcadores de parâmetro (ou seja, as interrogações) ou a cláusula VALUES, porque toda a instrução do banco de dados pôde ser fornecida, como uma cadeia literal, pelo programa. Entretanto, use marcadores de parâmetro sempre que possível porque isto reduz o número de instruções diferentes que precisam ser preparadas e armazenadas no banco de dados e no intermediário.

Referência ao Banco de Dados

Uma referência ao banco de dados é uma instância especial das referências de campos utilizadas para referir-se às árvores de mensagens. Consiste na palavra Database seguida pelo nome de uma origem de dados (ou seja, o nome de uma instância de banco de dados).

Você pode especificar o nome da origem de dados diretamente ou por uma expressão entre chaves ({...}). Um nome de origem de dados especificado diretamente está sujeito à substituição de nome. Ou seja, se o nome utilizado tiver sido declarado como um nome conhecido, o valor do nome declarado será utilizado no lugar do próprio nome (consulte Instrução DECLARE).

Se você tiver criado um fluxo de mensagens que contém um dos nós a seguir e o ESQL que está associado a este nó incluir uma instrução PASSTHRU e uma referência de banco de dados, deverá especificar um valor para a propriedade Origem de Dados do nó relevante:
  • Compute
  • Banco de Dados
  • Filter

Tratamento de erros

É possível que ocorram erros durante as operações PASSTHRU. Por exemplo, o banco de dados pode não estar operacional ou a instrução pode estar inválida. Nesses casos, uma exceção é lançada (a menos que o nó tenha sua propriedade Lançar exceção em caso de erro no banco de dados apagada). Essas exceções configuram os valores apropriados de código SQL, estado, erro nativo e texto de erro e podem ser tratadas por rotinas de tratamento de erro (consulte a instrução DECLARE HANDLER).

Para obter informações adicionais sobre como manipular erros do banco de dados, consulte Capturando o Estado do Banco de Dados.

Exemplos

O exemplo a seguir cria a tabela Customers no esquema Shop no banco de dados 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;
Se, como no último exemplo, a instrução ESQL for especificada como uma cadeia literal, você deverá colocar aspas simples ao redor dela. Se, entretanto, for especificada como uma variável, omita as aspas. Por exemplo:
SET myVar = 'SELECT * FROM user1.stocktable';
SET OutputRoot.XMLNS.Data[] = PASSTHRU(myVar);
O exemplo a seguir "elimina" (ou seja, exclui) a tabela Customers do esquema Shop no banco de dados DSN1:
PASSTHRU 'DROP TABLE Shop.Customers' TO Database.DSN1; 
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

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

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:54


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ak05100_