求助语句处理方法

nnnsu 2009-06-15 06:11:08
declare
BEGIN

INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统'),'操作系统','ZDH');
INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='调度管理系统'),'操作系统','ZDH');
..
..
..
commit;

end;
/


我需要做这样的一个处理,但执行的时候会报错,说 (SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统') 这里有问题,大家有什么解决方案?


...全文
37 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyhymn 2009-06-16
  • 打赏
  • 举报
回复
学习。
yxxx 2009-06-16
  • 打赏
  • 举报
回复
贴出报错信息,大家研究研究~
lylm 2009-06-16
  • 打赏
  • 举报
回复
测试没有问题,可能LZ插入两个11违反约束
create table csdn
(name char(8),
age number(3),
ad char(50));

insert into csdn values ('aa',54,'dkfj');
insert into csdn values ('ab',5,'dkfj');
insert into csdn values ('aad',25,'dkfj');
insert into csdn values ('dd',(select max(age) from csdn where ad='dkfj'),'3003');
robin_ares 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 inthirties 的回复:]
报什么错呀。
[/Quote]
只有引用的内容不允许回复!!
oraclelogan 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oraclelogan 的回复:]
引用楼主 nnnsu 的帖子:
declare
BEGIN

INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统'),'操作系统','ZDH');
INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='调度管理系统'),'操作系统','ZDH');
..
..
..
commit;

end;
/


我需要做这样的一个处理,但执行的时候会报错,说 (SELECT MAX(bh) FROM sbtz_xtlx WH…
[/Quote]

弄错了,不好意思,max只有一个值。

楼主最好把出错信息贴出来,大家看下。
oraclelogan 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 nnnsu 的帖子:]
declare
BEGIN

INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统'),'操作系统','ZDH');
INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='调度管理系统'),'操作系统','ZDH');
..
..
..
commit;

end;
/


我需要做这样的一个处理,但执行的时候会报错,说 (SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统') 这…
[/Quote]


INSERT INTO sbtz_yylx VALUES (11,(SELECT MAX(bh) FROM sbtz_xtlx WHERE mc='能量管理系统' and rownum<2),'操作系统','ZDH');

中间增加一个rownum<2的限制,有可能max(bh)有2个同样的值。
zhangyong369 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 welyngj 的回复:]
INSERT INTO sbtz_yylx select 11,MAX(bh) ,'操作系统','ZDH' FROM sbtz_xtlx WHERE mc='能量管理系统';
[/Quote]正确
welyngj 2009-06-15
  • 打赏
  • 举报
回复
INSERT INTO sbtz_yylx select 11,MAX(bh) ,'操作系统','ZDH' FROM sbtz_xtlx WHERE mc='能量管理系统';
inthirties 2009-06-15
  • 打赏
  • 举报
回复
报什么错呀。

17,377

社区成员

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

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