A instrução DELETE FROM exclui linhas de uma tabela em um banco de dados externo, com base em uma condição de procura.
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.
Se um nome de esquema não for especificado, será utilizado o esquema padrão para o usuário do banco de dados do intermediário.
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 expressão da cláusula WHERE pode utilizar qualquer um dos operadores e funções do intermediário, 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 intermediário 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 SELECTs que os contêm e quaisquer outras variáveis ou constantes declaradas no escopo.
É 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.
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
Remove todas as linhas da tabela SHAREHOLDINGS em que o valor na coluna ACCOUNTNO (na tabela) seja igual àquele do campo AccountNumber na mensagem. Pode excluir zero, uma ou mais linhas da 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';