Section courante

A propos

Section administrative du site

UPDATE

Mise-à-jour
Oracle Database SQL  

Syntaxe

UPDATE [hint] [schema.]table [@dblink] [alias]
      SET [
    column = expression |
        column = (subquery) |
        column  = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]
UPDATE [hint] [schema.]table [[SUB]PARTITION (partition)] [alias]
      SET [
    column = expression |
        column = (subquery) |
        column = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]
UPDATE [hint] [schema.]view [@dblink] [alias]
      SET [
    column = expression |
        column = (subquery) |
        column = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]
UPDATE [hint] [schema.]materialized_view [@dblink] [alias]
      SET [
    column = expression |
        column = (subquery) |
        column = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]
UPDATE [hint] (subquery)
     WITH {READ ONLY | CHECK OPTION [CONSTRAINT constraint]} 
      SET [
    column = expression |
        column = (subquery) |
        column = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]
UPDATE [hint] TABLE (table_collection_expression) [(+)] 
      SET [
    column = expression |
        column = (subquery) |
        column = DEFAULT |
        (columncolumn,...) = (subquery) |
        VALUE (table_alias) = expression |
        VALUE (table_alias) = (subquery) |
        ]
        [WHERE condition]
           [ RETURNING (expr,...) INTO (data_item,...) ]

Paramètres

Nom Description
schema Ce paramètre optionnel permet d'indiquer le schéma à utiliser
table Ce paramètre permet d'indiquer la table à traiter.
dblink Ce paramètre permet d'indiquer la liaison de base de données.
column Ce paramètre permet d'indiquer le nom de la colonne à modifier.
expression Ce paramètre permet d'indiquer l'expression à mettre dans le champ.
subquery Ce paramètre permet d'indiquer une sous-requête à exécuter pour connaître la valeur à mettre dans le champ.
table_alias Ce paramètre permet d'indiquer un alias à associer à la table.
condition Ce paramètre permet d'indiquer une condition à satisfaire pour modifier les champs de l'enregistrement.

Description

Cette instruction permet de mettre à jour des champs d'enregistrements dans une table.

Exemples

L'exemple suivante donne des commissions nulles à tous les employés avec le travail SH_GLADIR :

  1. UPDATE employees SET commission_pct = NULL WHERE job_id = 'SH_GLADIR';

La déclaration suivante promeut Steve Tremblay au poste de directeur du département 20 avec une augmentation de 1 000 $ :

  1. UPDATE employees SET job_id = 'SA_MAN', salary = salary + 1000, department_id = 120 WHERE first_name||' '||last_name = 'Steve Tremblay'; 

L'exemple suivante augmente le salaire d'un employé dans la table des employés de la base de données à distance :

  1. UPDATE employees@remote SET salary = salary*1.1 WHERE last_name = 'Maltais';

L'exemple suivant permet de mettre à jour les valeurs dans une seule partition de la table sales :

  1. UPDATE sales PARTITION (sales_q1_1999) s SET s.promo_id = 494 WHERE amount_sold > 1000;

L'exemple suivant renvoie les valeurs de la ligne mise à jour et entrepose le résultat dans les variables PL/SQL bnd1, bnd2, bnd3 :

  1. UPDATE employees SET job_id ='SA_MAN', salary = salary + 1000, department_id = 140 WHERE last_name = 'Jean' RETURNING salary*0.25, last_name, department_id INTO :bnd1, :bnd2, :bnd3;

L'exemple suivant montre que vous pouvez spécifier une fonction d'agrégation à ensemble unique dans l'expression de la clause de retour :

  1. UPDATE employees SET salary = salary * 1.1 WHERE department_id = 100 RETURNING SUM(salary) INTO :bnd1;

Voir également

Article - Les géants de l'informatique - Oracle

Dernière mise à jour : Lundi, le 11 mai 2015