我想在表格中插入一些数据。我希望从另一个表中获取一个字段,因此我在内部使用select语句。这是代码:
INSERT INTO t.table1 (
id,
id_t2,
date_of_change
)
VALUES (
t.table1_seq.nextval,
SELECT s.id_id_t2 from t.table2 s where s.something='something',
TO_DATE('02/05/2017 13:43:34','DD/MM/YYYY HH24:MI:SS')
)
虽然select语句总是只返回1个字段(1行),但我认为这就是我收到错误的原因。 如何只用1个字段用SELECT语句编写INSERT语句?可以吗?如果没有,是否还有其他解决方案可以解决这个问题?谢谢。
答案 0 :(得分:2)
您可以将整个insert
语句翻译成
insert into table1 (fields)
select fields from table2
这将允许您在select
中指定源表中的一些值和一些常量值。生成的查询将是
INSERT INTO t.table1 (
id,
id_t2,
date_of_change
)
SELECT t.table1_seq.nextval,
s.id_id_t2,
TO_DATE('02/05/2017 13:43:34','DD/MM/YYYY HH24:MI:SS')
FROM t.table2 s
WHERE s.something='something'