update....sequence的疑问

[复制链接]
查看11 | 回复6 | 2010-3-1 11:04:58 | 显示全部楼层 |阅读模式
序列:
CREATE SEQUENCE my_seq
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
更新语句是:
update
tab_a
set (col_1, col_2) = (select (select
my_seq.NEXTVAL
from
dual), col_3
from
tab_b
where
tab_a.id = tab_b.id)
where
exists.. .错误:ora-02287:此处不允许序号
有何妙法??
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
select
my_seq.NEXTVAL,col_3
from
tab_b
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
一样的错误
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
[php]
SQL> select * from tab_a;
IDCOL_1COL_2
---------- ---------- ----------
1

2

3

SQL> select * from tab_b;
IDCOL_3
---------- ----------
1 11
2 12
3 13
SQL>
SQL> update tab_a
2 set col_1 = my_seq.nextval,
3 col_2 = (select col_3 from tab_b where tab_a.id=tab_b.id)
4/
3 rows updated
SQL> select * from tab_a;
IDCOL_1COL_2
---------- ---------- ----------
1
1 11
2
2 12
3
3 13
--------
[/php]
[ 本帖最后由 jackywood 于 2008-3-31 13:13 编辑 ]
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
good idea。。。。
成功
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
学习了,这个帖子不错呀 !思路清晰
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
bucuo
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行