在partition分区中使用merge into 的问题,有熟悉的帮忙下

wjmwaq 2008-09-12 03:08:43
表A有N个月分区 A分区1、A分区2 字段 c1 (一年12个月1张表 12个分区)
表B有N个日分区 B分区1、B分区2 字段 c2 (一月最多31天 31个分区)
两表有id关联
目的是将日分区数据每日写进月分区,有记录就UPDATE没有就insert。
我的MERGE INTO是这样写的


merge into A partition(A分区1) t
using (select * from B partition(B分区1)) f
on (t.id=f.id)
when matched then
UPDATE set t.c1=f.c2
when not matched then
insert values (f.id,f.c2)
;

日期不同、读取不同分区内容和写入的是同一分区,但是换月后表B将有两个分区内容
从语句上来讲应该没有 语法问题,
有个疑问就是:指定分区后 如果有UPDATE 是不是UPDATE指定分区里的数据。会不会把表A其他分区的数据也给UPDATE了。如果我只想UPDATE指定分区的数据,请问要怎么写?
...全文
613 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2008-09-16
  • 打赏
  • 举报
回复
没干过这事,回头44
wjmwaq 2008-09-16
  • 打赏
  • 举报
回复
还有谁能帮帮我
wjmwaq 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sleepzzzzz 的回复:]
--修改分区里的数据
update Partition_FHTest partition(part_fh02) t set t.PITEM = 'JZHUA' where t.pid = '1961'
[/Quote]

改成update A partition(A分区1) set t.c1=f.c2 的时候 抛出
ORA-00971: missing SET keyword
错误
wjmwaq 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sleepzzzzz 的回复:]
--修改分区里的数据
update Partition_FHTest partition(part_fh02) t set t.PITEM = 'JZHUA' where t.pid = '1961'
[/Quote]

我的oracle是9i 不能带where 属性
sleepzzzzz 2008-09-12
  • 打赏
  • 举报
回复
--修改分区里的数据
update Partition_FHTest partition(part_fh02) t set t.PITEM = 'JZHUA' where t.pid = '1961'

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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