Referenciando as Colunas em um Banco de Dados

Embora a sintaxe SQL SELECT padrão seja suportada para consultas em um banco de dados externo, existem vários pontos a serem considerados. É necessário prefixar o nome da tabela com a palavra-chave Database para indicar que SELECT deve ser direcionado no banco de dados externo, em vez de em uma estrutura de repetição na mensagem.

O formato básico de SELECT do banco de dados é:

SELECT ...
  FROM Database.TABLE1
  WHERE ...

Se necessário, você pode especificar um nome de esquema:

SELECT ...
  FROM Database.SCHEMA.TABLE1
  WHERE ...

em que SCHEMA é o nome do esquema no qual a tabela TABLE1 está definida. Inclua o esquema se o ID do usuário, com o qual você está executando, não corresponder ao esquema. Por exemplo, se seu ID do usuário for USER1, a expressão Database.TABLE1 será equivalente a Database.USER1.TABLE1. No entanto, se o esquema associado à tabela no banco de dados for db2admin, será necessário especificar Database.db2admin.TABLE1. Se não incluir o esquema e ele não corresponder ao seu ID de usuário atual, o intermediário gerará um erro de tempo de execução quando uma mensagem for processada pelo fluxo de mensagens.

Se, como nos dois exemplos anteriores, uma origem de dados não for especificada, TABLE1 deverá ser uma tabela no banco de dados padrão especificado pela propriedade origem de dados do nó. Para acessar dados em um banco de dados diferente do padrão especificado na propriedade origem de dados do nó, será necessário especificar a origem de dados explicitamente. Exemplo:
SELECT ...
  FROM Database.DataSource.SCHEMA.TABLE1
  WHERE ...

Qualifique as referências a nomes de colunas com o nome da tabela ou da correlação definido para a tabela pela cláusula FROM. Portanto, onde você normalmente pode executar uma consulta, como:

SELECT column1, column2 FROM table1

você deve gravar um dos dois formatos a seguir:

SELECT T.column1, T.column2 FROM Database.table1 AS T
 SELECT table1.column1, table1.column2 FROM Database.table1

Isto é necessário para distinguir referências a colunas do banco de dados de quaisquer referências a campos em uma mensagem que também podem aparecer em SELECT:

SELECT T.column1, T.column2 FROM Database.table1
    AS T WHERE T.column3 = Body.Field2
Você pode utilizar a cláusula AS para renomear as colunas retornadas. Exemplo:
SELECT T.column1 AS price, T.column2 AS item
  FROM Database.table1 AS T WHERE...

O padrão seleciona todas as opções SQL que são suportadas na cláusula SELECT. Se você utilizar esta opção, deverá qualificar os nomes de colunas com o nome da tabela ou o nome da correlação definido para a tabela. Por exemplo:

SELECT T.* FROM Database.Table1 AS T

Quando utilizar procedimento ESQL e nomes de funções dentro de uma consulta de banco de dados, o posicionamento deles dentro da chamada afetará o modo como esses dados serão processados. Se for determinado que o procedimento ou função afeta os resultados retornados pela consulta, ele não será processado como ESQL e será transmitido como parte da chamada do banco de dados.

Isso se aplica principalmente ao tentar utilizar um procedimento ou um nome de função com os identificadores de colunas dentro da instrução SELECT.

Por exemplo, se uma instrução CAST for utilizada em um identificador de colunas especificado na cláusula Select, ela será utilizada durante a consulta do banco de dados para determinar o tipo dos dados que estão sendo retornados para essa coluna. Um CAST ESQL não é executado nesse tipo de dados ESQL e os dados retornados são afetados pela interpretação da interação do banco de dados desse tipo de dados.

Se uma função ou procedimento for utilizado em um identificador de coluna especificado na cláusula WHERE, ele será transmitido diretamente para o gerenciador do banco de dados para processamento.

Os exemplos nos tópicos subseqüentes ilustram como os conjuntos de resultados de consultas do banco de dados externo são representados no WebSphere Message Broker. Os resultados de consultas do banco de dados são designados a campos em uma mensagem utilizando um nó Compute.

Uma função de coluna é uma função que utiliza os valores de uma única coluna em todas as linhas selecionadas de uma tabela ou mensagem e retorna um único resultado escalar.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
Referência de ESQL
Função CARDINALITY
Função SELECT
Mensagem de Exemplo
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05760_