执行:
insert into table1(con1,con2,con3) values ((select max(con1)+1 from table2),(select con2 from table3),'0,0,0,1,0,0');
报错:
ERROR at line 1:
ORA-01427: single-row subquery returns more than one row怎么处理?
谢谢!
insert into table1(con1,con2,con3) values ((select max(con1)+1 from table2),(select con2 from table3),'0,0,0,1,0,0');
报错:
ERROR at line 1:
ORA-01427: single-row subquery returns more than one row怎么处理?
谢谢!
解决方案 »
- 怎么把已经做好的数据库改到以前的某个时间点
- 高分求查询语句,组查询语句,更加客户编号,记账日期,单号,余额查询是否有相同的数据。
- oracle中代替NOT IN 的实现方法
- 高分求助:在日文linux上安装oracle遇到的问题
- 组合问题
- 各位,帮我解决一个问题.Oracle中存储过程如何解决,字符串的转换问题.
- 在线急问:Oracle存储过程中创建临时表的方法(up有分)
- 新手问题:system,sys,internal帐号的作用及区别?
- 怎样取出日期字段的年份、月份、日的各部件的整数/字符值?
- 安装oracle
- 请问oracle的DEFAULT_MAINTENANCE_PLAN是干什么用的?
- oracle 一个表中有100条记录这样查询表中的第80条到90条记录
insert into table1(con1,con2,con3)
valuse
select (select max(con1)+1 from table2) col1,
con2 col3,
'0,0,0,1,0,0' col3
from table3
select max(table2.con1)+1,table3.con2 ,'0,0,0,1,0,0' from table2,table3
group by table3.con2不知道是不是这样的?
insert into table1 (con1,con2,con3)
select max(table2.con1)+1,table3.con2 ,'0,0,0,1,0,0' from table2,table3
group by table3.con2
create table table1(
con1 number(5),
con2 varchar2(10),
con3 varchar2(15));
create table table2(
con1 number(5),
con2 varchar2(10),
con3 varchar2(10));
create table table3(
con1 varchar2(10),
con2 varchar2(10),
con3 varchar2(10));
SQL> select * from table2;
/*
CON1 CON2 CON3
------ ---------- ----------
50 阿凡达 3D电影
66 未来警察 科幻片
15 天天向上 综艺节目
*/
SQL> select * from table3;
/*
CON1 CON2 CON3
---------- ---------- ----------
太贵了 宝马 7系
中等价 奥迪 A4
跑车 宝马 Z4
豪华车 奔驰 C200K
概念车 路虎 LRX
*/
SQL> insert into table1(con1,con2,con3)
2 values ((select max(con1)+1 from table2),(select con2 from table3),'0,0,0,1,0,0');ORA-01427: single-row subquery returns more than one row
/*
你的select max(con1)+1 from table2只返回一个数据,
但是select con2 from table3就返回多条数据,
而每个insert into table语句一次只能插入一条数据,
你的这条插入语句解释下来就是这么的:
insert into table1(con1,con2,con3)
values(来自table2的一条数据,来自table3的多条数据,'0,0,0,1,0,0');
所以你会碰到这个错误
*/
SQL> insert into table1(con1,con2,con3)
2 select max(table2.con1)+1,
3 table3.con2,
4 '0,0,0,1,0,0'
5 from table2,table3
6 group by table3.con2;4 rows insertedSQL> select * from table1;
/*
CON1 CON2 CON3
------ ---------- ---------------
67 奥迪 0,0,0,1,0,0
67 宝马 0,0,0,1,0,0
67 奔驰 0,0,0,1,0,0
67 路虎 0,0,0,1,0,0
*/