Maison > base de données > tutoriel mysql > Comment effectuer des opérations UPSERT dans les bases de données Oracle ?

Comment effectuer des opérations UPSERT dans les bases de données Oracle ?

Patricia Arquette
Libérer: 2025-01-20 21:39:10
original
518 Les gens l'ont consulté

How to Perform UPSERT Operations in Oracle Databases?

Effectuer l'opération UPSERT dans la base de données Oracle

L'opération UPSERT - une combinaison de mise à jour et d'insertion - modifie les données dans la table. Oracle ne dispose pas d'une instruction UPSERT dédiée, la question se pose donc de savoir comment y parvenir efficacement.

Solution : instruction MERGE

Oracle fournit l'instruction MERGE, qui fusionne les données d'une table à une autre. Il permet trois opérations : insérer, mettre à jour et supprimer. En utilisant une table DUAL (contenant une seule ligne et une seule colonne), on peut simuler une opération UPSERT.

Exemple :

create or replace
procedure ups(xa number)
as
begin
    merge into mergetest m using dual on (a = xa)
         when not matched then insert (a,b) values (xa,1)
             when matched then update set b = b+1;
end ups;
/
Copier après la connexion

Utilisation :

-- 创建必要的表
drop table mergetest;
create table mergetest(a number, b number);

-- 调用过程以执行UPSERT
call ups(10);
call ups(10);
call ups(20);

-- 验证结果
select * from mergetest;
Copier après la connexion

Sortie :

<code>A                      B
---------------------- ----------------------
10                     2
20                     1</code>
Copier après la connexion

Cette instruction MERGE garantit que si une ligne correspondant à la clé spécifiée (xa) existe, la ligne est mise à jour, sinon une nouvelle ligne est insérée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal