Oracle9i中的Merge语句问题!!!请高手赐教!!!

VBKey 2003-08-21 05:32:17
Merge into tablename
using (datasource)
on ()
...
...

语句中是否可以使用外部变量?
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-08-23
  • 打赏
  • 举报
回复
学习。
VBKey 2003-08-22
  • 打赏
  • 举报
回复
首先感谢大侠捧场!!!
我测试过在update和insert部分是可以的,但在using (select .. from .. where --这里用外部变量就出错?),是不是就where后面不能使用外部变量?!!
VBKey 2003-08-22
  • 打赏
  • 举报
回复
类型没有错,单独将select语句(带外部变量)拿出来运行是可以的!!!
beckhambobo 2003-08-22
  • 打赏
  • 举报
回复
参考:
http://gigabase.idi.ntnu.no/oradoc/server.901/a90125/statements_916.htm#2080942
可以的,是否楼主对应类型搞错了,请细心检查
beckhambobo 2003-08-21
  • 打赏
  • 举报
回复
SQL> select * from aa;

ID NAME
-- ----------
2 2
3 2
1 2

SQL> select * from bb;

ID NAME
-- ----------
1
2

create procedure pro(p_old in varchar2,p_new in varchar2)
as
begin
merge into aa
using(select * from bb)
on (a.id=b.id)
when matched then
update set name=p_old
when not matched then
insert into values(a.id,p_new);
end;
/

begin
pro('4','new');
end;
/
jiezhi 2003-08-21
  • 打赏
  • 举报
回复
嘗試一下就知道了。
在動態sql里面這些肯定是可以的。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧