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

Acessando Várias Tabela de Banco de Dados

Você pode fazer referência a várias tabelas criadas no mesmo banco de dados. Utilize a cláusula FROM na instrução SELECT para unir os dados das duas tabelas.

O exemplo a seguir assume que você possui duas tabelas do banco de dados chamadas USERTABLE1 e USERTABLE2. As duas tabelas possuem colunas de tipos de dados char(6) (ou equivalentes).

USERTABLE1 contém duas linhas:

  Column1 Column2
Row 1 value1 value2
Row 2 value3 value4

USERTABLE2 contém duas linhas:

  Column3 Column4
Row 1 value5 value6
Row 2 value7 value8

Todas as tabelas referidas por uma única função SELECT devem estar no mesmo banco de dados. O banco de dados pode ser o padrão (especificado na propriedade Origem de Dados do nó) ou outro banco de dados (especificado na cláusula FROM da função SELECT).

Configure o nó Compute, Banco de Dados, ou Filter que você está usando para identificar o banco de dados no qual definiu as tabelas. Por exemplo, se estiver usando o banco de dados padrão, clique com o botão direito do mouse no nó, selecione Abrir ESQL e codifique as seguintes instruções ESQL no módulo para esse nó:

SET OutputRoot.XML.Test.Result[] =
         (SELECT A.Column1 AS FirstColumn,
                 A.Column2 AS SecondColumn,
                 B.Column3 AS ThirdColumn,
                 B.Column4 AS FourthColumn
            FROM Database.USERTABLE1 AS A,
                 Database.USERTABLE2 AS B
           WHERE A.Column1 = 'value1' AND
                 B.Column4 = 'value8'
         ); 

Esse código resulta no seguinte conteúdo de mensagem de saída:

<Test>
  <Result>
    <FirstColumn>value1</FirstColumn>
    <SecondColumn>value2</SecondColumn>
    <ThirdColumn>value7</ThirdColumn>
    <FourthColumn>value8</FourthColumn>
  </Result>
</Test>

Esse exemplo mostra como acessar dados de duas tabelas de banco de dados. Você pode codificar cláusulas FROM mais complexas para acessar várias tabelas de banco de dados (embora todas as tabelas devam estar no mesmo banco de dados). Você também pode consultar uma ou mais árvores de mensagens e pode utilizar SELECT para juntar tabelas com tabelas, mensagens com mensagens ou tabelas com mensagens. Unindo Dados de Mensagens e Tabelas do Banco de Dados fornece um exemplo de como combinar dados da mensagem com dados em uma tabela de banco de dados.

Se você especificar uma função ou procedimento ESQL no identificador de coluna na cláusula WHERE, ele será processado comoparte da consulta de banco de dados e não como ESQL.

Considere o seguinte exemplo:

  SET OutputRoot.XML.Test.Result = 
     THE(SELECT ITEM T.Column1 FROM Database.USERTABLE1 AS T 
     WHERE UPPER(T.Column2) = 'VALUE2');

Esse código tenta retornar as linhas em que o valor Column2 convertido para maiúsculas é VALUE2. Entretanto, somente o gerenciador de banco de dados pode determinar o valor de T.Column2 para qualquer linha dada, assim, ele não pode ser processado pelo ESQL antes da consulta do banco de dados ser emitida, porque a cláusula WHERE determina que as linhas sejam retornadas para o fluxo de mensagens.

Portanto, o UPPER é transmitido ao gerenciador do banco de dados para ser incluído como parte de seu processamento. Entretanto, se o gerenciador de banco de dados não puder processar o token dentro da instrução SELECT, será retornado um erro.

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:59


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ak05830_