oracle 中 merge into 在动态sql 中怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中 merge into 在动态sql 中怎么用相关的知识,希望对你有一定的参考价值。

a varchar2(1000);
type ty_pe is table of person3%rowtype index by binary_integer;
b ty_pe;
c person3.person3_id%type;
d person3.person3_name%type;
begin
a :=' MERGE into person3 using (select * from person) a
on (person3.person3_id = a.person_id)
when matched then
update set person3.person3_name = a.person_name
when not matched then
insert values (a.person_id,a.person_name)
returning person3.person3_id,person3.person3_name into :c,:d';
execute immediate a bulk collect into b returning c,d;
dbms_output.put_line(c || d);
end;

参考技术A merge into table1 t
using (select a,b,c from table2)a
on (t.a=a.a and t.b=a.b)
when matched then
update set t.c=a.c
纯手打 ,望采纳追问

我说的是在动态sql里面的用法,用字符串存储,然后用execute immediate 唤醒,返回主表的两个列

参考技术B 开发性烧俟来历搜诹

oracle merge into 表里面的一部分数据怎样做?

我只想merge本月的数据,其他月份不管,怎么做?

USB里面设置好你想要的效果就行啦 参考技术A merge
into
时,如果b表(辅助表)中有重复记录,在matched条件下,
update时就会出错。因为数据库不知道用哪一条匹配的结果。

以上是关于oracle 中 merge into 在动态sql 中怎么用的主要内容,如果未能解决你的问题,请参考以下文章

oracle中merge into的使用

Oracle merge into 的效率问题

oracle merge into 的这个该怎么用

oracle merge into用法

在oracle中使用merge into实现更新和插入数据

Oracle 使用MERGE INTO 语句更新数据