A instrução UPDATE
altera os valores das colunas especificadas em uma ou mais linhas em uma tabela ou exibição. Para obter uma descrição completa da UPDATE
instrução SQL, consulte Oracle Database SQL Reference.
Sintaxe
update statement :: =
Descrição da ilustração update_statement.gif
Descrição de palavra-chave e parâmetro
alias
Outro nome (geralmente curto) para a tabela ou visualização referenciada, normalmente usado na cláusula WHERE
.
column_name
A coluna (ou uma das colunas) a ser atualizada. Deve ser o nome de uma coluna na tabela ou visão referenciada. Um nome de coluna não pode ser repetido na lista column_name
. Os nomes das colunas não precisam aparecer na instrução UPDATE
na mesma ordem em que aparecem na tabela ou visualização.
Return_clause
Retorna valores das linhas atualizadas, eliminando a necessidade de SELECT
as linhas posteriormente. Você pode recuperar os valores da coluna em variáveis ou variáveis de host, ou em coleções ou matrizes de host. Você não pode usar a cláusula RETURNING
para atualizações remotas ou paralelas. Se a instrução não afetar nenhuma linha, os valores das variáveis especificadas na cláusula RETURNING
são indefinidos. Para obter a sintaxe de returning_clause
, consulte “Cláusula RETURNING INTO”.
SET column_name = sql_expression
Esta cláusula atribui o valor de sql_expression
à coluna identificada por column_name
. Se sql_expression
contém referências a colunas na tabela que está sendo atualizada, as referências são resolvidas no contexto da linha atual. Os valores das colunas antigas são usados no lado direito do sinal de igual.
SET column_name = (subquery3)
Atribui o valor recuperado do banco de dados por subquery3
para a coluna identificada por column_name
. A subconsulta deve retornar exatamente uma linha e uma coluna.
SET (column_name, column_name, …) = (subquery4)
Atribui os valores recuperados do banco de dados por subquery4
às colunas na lista column_name
. A subconsulta deve retornar exatamente uma linha que inclui todas as colunas listadas. Os valores da coluna retornados pela subconsulta são atribuídos às colunas na lista de colunas em ordem. O primeiro valor é atribuído à primeira coluna da lista, o segundo valor é atribuído à segunda coluna da lista e assim por diante.
sql_expression
Qualquer expressão SQL válida. Para obter mais informações, consulte Oracle Database SQL Reference.
subconsulta
Uma instrução SELECT
que fornece um conjunto de linhas para processamento. Sua sintaxe é como a de select_into_statement
sem a cláusula INTO
. Consulte “Instrução SELECT INTO”.
table_reference
Uma tabela ou visão que deve estar acessível quando você executa a instrução UPDATE
e para que você deve ter UPDATE
privilégios. Para obter a sintaxe de table_reference
, consulte “Instrução DELETE”.
TABLE (subconsulta2)
O operando de TABLE
é uma instrução SELECT
que retorna um único valor de coluna, que deve ser uma tabela aninhada ou um varray. O operador TABLE
informa ao Oracle que o valor é uma coleção, não um valor escalar.
WHERE CURRENT OF cursor_name
Refere-se à última linha processado pela instrução FETCH
associada ao cursor especificado. O cursor deve ser FOR
UPDATE
e deve estar aberto e posicionado em uma linha. Se o cursor não estiver aberto, a cláusula CURRENT
OF
causa um erro. Se o cursor estiver aberto, mas nenhuma linha foi buscada ou a última busca não retornou nenhuma linha, o PL / SQL gera a exceção predefinida NO_DATA_FOUND
.
WHERE condição_de_pesquisa
Escolhe quais linhas atualizar na tabela do banco de dados. Apenas as linhas que atendem à condição de pesquisa são atualizadas. Se você omitir esta cláusula, todas as linhas da tabela serão atualizadas.
Notas de uso
Você pode usar o UPDATE
WHERE
CURRENT
OF
instrução após uma busca de um cursor aberto (incluindo buscas feitas por um cursor FOR
loop), desde que a consulta associada seja FOR
UPDATE
. Esta instrução atualiza a linha que acabou de ser obtida.
O cursor implícito SQL
e os atributos do cursor %NOTFOUND
, %FOUND
, %ROWCOUNT
e %ISOPEN
permitem acessar informações úteis sobre a execução de um UPDATE
declaração.
Exemplos
O Exemplo 13-7 cria uma tabela com IDs de funcionários corretos, mas nomes ilegíveis. Em seguida, ele executa uma instrução UPDATE
com uma consulta correlacionada, para recuperar os nomes corretos da tabela EMPLOYEES
e corrigir os nomes na nova tabela .
Para obter exemplos, consulte o seguinte:
Exemplo 1-12, “Criando um subprograma armazenado”
Exemplo 4-1, “Usando uma instrução IF-THEN simples”
Exemplo 5-51, “Atualizando uma linha usando um registro”
Exemplo 5-52, “Usando a cláusula RETURNING com um registro”
Exemplo 6-1, “Manipulação de dados com PL / SQL”
Exemplo 6-5, “Usando CURRVAL e NEXTVAL”
Exemplo 6-6, “Usando ROWNUM”
Exemplo 6-38, “Usando SAVEPOINT com ROLLBACK”
Exemplo 6-41, “Usando CURRENT OF para atualizar a última linha obtida de um cursor “
Exemplo 7-1,” Exemplos de SQL dinâmico “
Exemplo 7-5,” SQL dinâmico com cláusula RETURNING BULK COLLECT INTO “
Exemplo 7-6 , “Instrução Dynamic SQL Inside FORALL”
Exemplo 11-6, “Usando rollbacks com FORALL”
Exemplo 11-9, “Operação em massa que continua apesar das exceções”
Tópicos relacionados
“Manipulação de dados”
“Instrução DELETE”
“Instrução FETCH”
“Instrução INSERT”