ORA-01427 错误,插入所有行
ORA-01427 error , insert into all rows
我的查询一直返回 ORA-01427 错误,请问如何解决:
我有 3 个表:T1 有 (idA,B) 列,B 类型日期
带有 (idC,D) 列的 T2,D 类型 varchar
T3 with (idE,F,G,....)columns, F type date, G type varchar, idE(DBsquences),F 和 G 是 Primary Key.
我想插入T3,来自T1和T2的数据
我的查询:
insert into T3 (F, G) values ((select B from T1 where max(B)), ( select D from T2));
我得到:ORA-01427 错误单行子查询 returns 多于一行。
我如何使用光标执行此操作?
T1:
idA B
------------
1 date1
2 date2 (the max date)
3 date3
T2:
idC D
----------
1 x
2 y
3 z
. .
. .
. .
n N
Result must be:
T3:
idE F G
-----------------------
1 date2 y
2 date2 z
. . .
. . .
. . .
. . .
n date2 N
如果我没理解错的话:
INSERT INTO T3 (F, G)
SELECT (select max(B) from T1), D
FROM T2
如果您从 select 插入值,则不需要 values
关键字,但您应该只使用 1 个查询。它不是有效条件 - where max(B)
。您不能在 WHERE
中使用组函数,只能在 HAVING
中使用。您应该创建 max(B) = something
之类的条件。如果你想选择最大值,你只需要在 SELECT
中使用函数 max
我的查询一直返回 ORA-01427 错误,请问如何解决:
我有 3 个表:T1 有 (idA,B) 列,B 类型日期 带有 (idC,D) 列的 T2,D 类型 varchar T3 with (idE,F,G,....)columns, F type date, G type varchar, idE(DBsquences),F 和 G 是 Primary Key.
我想插入T3,来自T1和T2的数据
我的查询:
insert into T3 (F, G) values ((select B from T1 where max(B)), ( select D from T2));
我得到:ORA-01427 错误单行子查询 returns 多于一行。
我如何使用光标执行此操作?
T1:
idA B
------------
1 date1
2 date2 (the max date)
3 date3
T2:
idC D
----------
1 x
2 y
3 z
. .
. .
. .
n N
Result must be:
T3:
idE F G
-----------------------
1 date2 y
2 date2 z
. . .
. . .
. . .
. . .
n date2 N
如果我没理解错的话:
INSERT INTO T3 (F, G)
SELECT (select max(B) from T1), D
FROM T2
如果您从 select 插入值,则不需要 values
关键字,但您应该只使用 1 个查询。它不是有效条件 - where max(B)
。您不能在 WHERE
中使用组函数,只能在 HAVING
中使用。您应该创建 max(B) = something
之类的条件。如果你想选择最大值,你只需要在 SELECT