merge into 的问题

liu498097420 2009-06-08 09:09:03
oracle10g在merger into中使用using搜查出来的如果是空集,那么要比较的元素应该不存在using中,则不匹配,那么应该是插于,可是为什么实际上却没有插于呢?
...全文
139 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
半世码农 2010-06-30
  • 打赏
  • 举报
回复
看着真纠结,楼主一直也没把代码粘出来
liu498097420 2009-06-10
  • 打赏
  • 举报
回复
using搜查出来的如果是空,也可以更merge into的表进行比较啊,应该都是不匹配,则要插于啊。
moqingcn 2009-06-09
  • 打赏
  • 举报
回复
看得很迷惑。。
vc555 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 karin3 的回复:]
using搜查出来的如果是空,当然什么都不做了
[/Quote]
不要误导LZ了。
karin3 2009-06-09
  • 打赏
  • 举报
回复
using搜查出来的如果是空,当然什么都不做了
是using出来的结果,跟要MERGE INTO的表比较,有就更新,没有就插入
vc555 2009-06-09
  • 打赏
  • 举报
回复
你应该检查别的地方,上面的例子已经证明null时会插入。
不要再纠结于merge into.
liu498097420 2009-06-09
  • 打赏
  • 举报
回复
是using为空集,不是你要插于的数据为空集。
vc555 2009-06-08
  • 打赏
  • 举报
回复
null时会插入啊

OPER@tl> select * from test;

AAA BBB
---------- ----------
1 1

OPER@tl> merge into test a using (select null aaa from dual) b
2 on (a.aaa=b.aaa)
3 when matched then update set a.bbb=999
4 when not matched then insert values(0,0)
5 /

1 行已合并。

OPER@tl> select * from test;

AAA BBB
---------- ----------
1 1
0 0

OPER@tl>
liu498097420 2009-06-08
  • 打赏
  • 举报
回复
是有匹配和不匹配的处理啊,我想问的是空集应该也是不匹配的吧,那也应该按不匹配处理,结果却没有执行不匹配语句。
Megan2008 2009-06-08
  • 打赏
  • 举报
回复
merge不是有匹配和不匹配的处理吗
liu498097420 2009-06-08
  • 打赏
  • 举报
回复
语法上不存在什么问题。就是如果在using中子查询条件限定的很严,结果子查询结果为空集,那么应该是不匹配,按照merge 不匹配就插于新的数值的话,应该会插于新值的,可是为什么实际上没有插于新值呢。
ojuju10 2009-06-08
  • 打赏
  • 举报
回复
参考下merge into 语法应该没有问题
阿三 2009-06-08
  • 打赏
  • 举报
回复
看看merge的语法,是不是哪里写的不对
hebo2005 2009-06-08
  • 打赏
  • 举报
回复
你的语句,表贴出来看看
welyngj 2009-06-08
  • 打赏
  • 举报
回复
不知道你是怎么做的?
要不,楼主把过程展示给我们?
oraclelogan 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 liu498097420 的帖子:]
oracle10g在merger into中使用using搜查出来的如果是空集,那么要比较的元素应该不存在using中,则不匹配,那么应该是插于,可是为什么实际上却没有插于呢?
[/Quote]

插于 啥意思?
kinlin 2009-06-08
  • 打赏
  • 举报
回复
空集既不会更新也不会插入,插入是需要数据的,数据都没了,那还插入什么
suncrafted 2009-06-08
  • 打赏
  • 举报
回复
学习
liu498097420 2009-06-08
  • 打赏
  • 举报
回复
其实我也觉得空值是应该是要插于的,可是我最近做的一个项目中就碰到过没有插于的情况,不够后来换了个条件语句,最终解决了,但是还是对于那个空值时没有插于的情况感到很迷惑。

3,491

社区成员

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

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