Instrução INSERT

A instrução INSERT insere uma linha em uma tabela de banco de dados.

SINTAXE

Uma única linha é inserida na tabela identificada por TableReference. A lista ColumnName identifica as colunas na tabela de destino que devem receber valores específicos. Esses valores são determinados pelas expressões na cláusula VALUES (a primeira expressão fornece o valor da primeira coluna nomeada e assim por diante). O número de expressões na cláusula VALUES deve ser igual ao número de colunas nomeadas. Quaisquer colunas presentes na tabela, mas não mencionadas na lista, recebem valores padrão.

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 um dos seguintes:
  • 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 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 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ó.

Tratamento de erros

É possível que ocorram erros durante as operações de inserção. Por exemplo, o banco de dados pode não estar operacional ou a tabela pode ter restrições definidas que a nova linha violaria. 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 do nó Database foi configurada e o banco de dados identificado por ela possui uma tabela chamada TABLE1 com colunas A, B e C.

Em uma determinada mensagem com o seguinte corpo XML genérico:
<A>
  <B>1</B>
  <C>2</C>
  <D>3</D>
</A>
A instrução INSERT a seguir insere uma nova linha na tabela com os valores 1, 2 e 3 para as colunas A, B e C:
INSERT INTO Database.TABLE1(A, B, C) VALUES (Body.A.B,
Body.A.C, Body.A.D);
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

-- Inserir os dados na tabela
INSERT INTO Database.{Source}.{Schema}.{Table} (Name, Value) values ('Joe', 12.34);
Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Capturando o Estado do Banco de Dados
Referências relacionadas
Diagramas de Sintaxe: Tipos Disponíveis
instruções ESQL
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05050_