我的查询不断返回 ORA-01427 错误,请问如何解决:
我有 3 个表:T1 包含 (idA,B) 列,B 类型日期 T2 具有 (idC,D) 列,D 类型 varchar T3 包含 (idE,F,G,....) 列,F 类型为 date,G 类型为 varchar,idE(DBsquences),F 和 G 为主键。
我想将T1和T2的数据插入T3
我的查询:
insert into T3 (F, G) values ((select B from T1 where max(B)), ( select D from T2));
我得到:ORA-01427 错误单行子查询返回多行。
如何使用光标执行此操作?
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
关于sql - ORA-01427错误,插入到所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34153946/