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 DELETE FROM

A instrução DELETE FROM exclui linhas de uma tabela em um banco de dados externo, com base em uma condição de procura.

Sintaxe

Ler diagrama de sintaxeManter visual do diagrama de sintaxe
>>-DELETE--FROM--TableReference--+----------------------+------->
                                 '-AS-- CorrelationName-'   

>--+-------------------+---------------------------------------><
   '-WHERE-- Expressão-'   

WHERE

|--TableReference =  --Banco de Dados--------------------------->

>--+------------------------------------------+----------------->
   '-+---------------------+--.--SchemaClause-'   
     '-.--DataSourceClause-'                      

>--.--TableClause-----------------------------------------------|

|--DataSourceClause =  --+-DataSourceName-------------+---------|
                         '-{--DataSourceExpression--}-'   

|--SchemaClause =  --+-SchemaName-------------+-----------------|
                     '-{--SchemaExpression--}-'   

|--TableClause =  --+-TableName-------------+-------------------|
                    '-{--TableExpression--}-'   

Todas as linhas para as quais a expressão da cláusula WHERE é avaliada como TRUE são excluídas da tabela identificada por TableReference.

Cada linha é examinada sucessivamente e uma variável é configurada para apontar para a linha atual. Normalmente, a expressão da cláusula WHERE utiliza essa variável para acessar valores de colunas e, por conseguinte, fazer com que as linhas sejam retidas ou excluídas de acordo com o conteúdo. A variável é referida por CorrelationName ou, na ausência de uma cláusula AS, por TableName.

Referência de Tabela

Uma referência de tabela é um caso especial das referências de campos utilizadas para referir-se às árvores de mensagens. Ela sempre inicia com a palavra "Database" e pode conter qualquer um dos elementos a seguir:
  • Apenas um nome de tabela.
  • Um nome de esquema e um nome de tabela.
  • Um nome de origem de dados (ou seja, o nome de uma instância de banco de dados), um nome de esquema e um nome de tabela.
Em cada caso, o nome pode ser especificado diretamente ou por uma expressão colocada entre chaves ({...}). Um nome de origem de dados, esquema ou tabela 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 um nome de esquema não for especificado, será utilizado o esquema padrão para o usuário do banco de dados do broker.

Se um nome de origem de dados não for especificado, será utilizado o banco de dados apontado pelo atributo origem de dados do nó.

A Cláusula WHERE

A expressão da cláusula WHERE pode usar qualquer um dos operadores e funções do broker em qualquer combinação. Ela pode referir-se a colunas de tabelas, campos de mensagens e quaisquer variáveis ou constantes declaradas.

Entretanto, lembre-se que o broker trata a expressão da cláusula WHERE, examinando-a e decidindo se a expressão inteira pode ser avaliada pelo banco de dados. Se puder, ela será fornecida ao banco de dados. A fim de ser avaliada pelo banco de dados, ela deve utilizar somente as funções e os operadores suportados pelo banco de dados.

Entretanto, a cláusula WHERE pode referir-se a campos de mensagens, nomes de correlação declarados por funções SELECT que os contêm e quaisquer outras variáveis ou constantes declaradas no escopo.

Se expressão inteira não puder ser avaliada pelo banco de dados, o broker procurará operadores AND de primeiro nível e examinará cada subexpressão separadamente. Em seguida, ele tentará fornecer ao banco de dados essas subexpressões que pode avaliar, deixando o broker avaliar o restante. É necessário estar ciente dessa situação por duas razões:
  1. Aparentemente, as alterações comuns em expressões da cláusula WHERE podem ter grandes efeitos no desempenho. Você pode determinar a porcentagem da expressão que foi fornecida ao banco de dados, examinando um rastreio do usuário.
  2. Algumas funções dos bancos de dados exibem diferenças sutis de comportamento em comparação às funções do broker.

Tratamento de erros

É possível que ocorram erros durante as operações de exclusão. Por exemplo, o banco de dados pode não estar operacional. Nestes casos, uma exceção é emitida (a menos que o nó tenha sua propriedade throw exception on database error configurada como FALSE). 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 supõe que a propriedade dataSource foi configurada e que o banco de dados identificado por ela possui uma tabela chamada SHAREHOLDINGS, com uma coluna chamada ACCOUNTNO.
DELETE FROM Database.SHAREHOLDINGS AS S
       WHERE S.ACCOUNTNO = InputBody.AccountNumber;

Este exemplo remove todas as linhas da tabela SHAREHOLDINGS em que o valor na coluna ACCOUNTNO (na tabela) é igual àquele no campo AccountNumber na mensagem. Esta operação pode excluir zero, uma ou mais linhas da tabela.

O próximo exemplo mostra a utilização de nomes de origem de dados, esquema e tabela:
-- Declarar variáveis para conter os nomes de origem de dados, esquema e tabela e
-- configurar seus valores padrão
DECLARE Source CHARACTER 'Production';
DECLARE Schema CHARACTER 'db2admin';
DECLARE Table  CHARACTER 'DynamicTable1';

-- O código que calcula seus valores reais fica aqui

-- Excluir linhas da tabela
DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';
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:53


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