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 |
Configure o nó Compute para identificar o banco de dados no qual as duas tabelas foram definidas. 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' );
Isto 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>
O exemplo acima mostra como acessar dados a partir de duas tabelas de bancos de dados. Você pode codificar cláusulas FROM mais complexas para acessar várias tabelas de bancos de dados, embora todas elas devam ser de um único banco (definido pela propriedade Origem de Dados do nó). Você também pode fazer referência a uma ou mais árvores de mensagens e pode utilizar SELECT para unir tabelas com tabelas, mensagens com mensagens ou tabelas com mensagens. Unindo Dados de Mensagens XML e Tabelas do Banco de Dados fornece um exemplo de como mesclar dados da mensagem com dados em uma tabela de banco de dados.
Se uma função ESQL ou nome de procedimento for especificado no identificador de coluna na cláusula WHERE, ele será processado como parte da consulta do 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');
Ele tenta retornar as linhas em que o valor de Column2 convertido em maiúscula é VALUE2. No entanto, apenas o gerenciador do banco de dados pode determinar o valor de T.Column2 para qualquer linha especificada e, portanto, ele não pode ser processado pelo ESQL antes da emissão da consulta do banco de dados, porque a cláusula WHERE determina as linhas que são retornadas ao fluxo de mensagens.
Portanto, o UPPER é transmitido ao gerenciador do banco de dados para ser incluído como parte de seu processamento. No entanto, se o gerenciador do banco de dados não puder processar o token na instrução select, será retornado um erro.
Conceitos relacionados
Fluxos de Mensagem
ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL
Unindo Dados de Mensagens XML e Tabelas do Banco de Dados
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
ESQL
Função SELECT
Instrução SET
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ak05830_ |