为什么此插入语句抛出表达式缺失错误?
Why is this insert statement throwing an expression missing error?
我正在使用 Oracle SQL。为什么此插入语句抛出表达式缺失错误?
INSERT INTO T_DATA(id, object_type, object_id,
measurement_id, derived_ind, no_hist_ind,
display_order, stored_precision, display_precision,
required_ind, mod_user, mod_dtime)
VALUES(SELECT MAX(id) + 1 FROM t_data_point, 'Object', 'ObjectName',
'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE);
你的用法可以只是 INSERT.. INTO.. SELECT..
INSERT INTO T_DATA(id, object_type, object_id,
measurement_id, derived_ind, no_hist_ind,
display_order, stored_precision, display_precision,
required_ind, mod_user, mod_dtime)
(SELECT MAX(id) + 1, 'Object', 'ObjectName',
'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE
FROM t_data_point);
要在 VALUES
中使用 SELECT
... 将它们嵌入括号中。
VALUES(
(SELECT MAX(id) + 1 FROM t_data_point),
...
)
编辑:
确保 INSERT
列中的表达式与 VALUES
匹配。
您提供的数据似乎少于插入所需的数据量。
插入 t_data(12 个表达式)VALUES(11 个表达式)
作为 MahMaheswaran 答案的替代方案。您仍然可以在使用 VALUES 的同时实现查询。您只需要将 SELECT 语句括在括号中即可。
INSERT INTO T_DATA (Id,
object_type,
object_id,
measurement_id,
derived_ind,
no_hist_ind,
display_order,
stored_precision,
display_precision,
required_ind,
mod_user,
mod_dtime)
VALUES (
(
SELECT
MAX(Id) + 1
FROM t_data_point
)
,
'Object',
'ObjectName',
'ID',
3,
0,
1,
2,
2,
0,
'TEST',
SYSDATE);
不过,我还是会用第一个答案。
我正在使用 Oracle SQL。为什么此插入语句抛出表达式缺失错误?
INSERT INTO T_DATA(id, object_type, object_id,
measurement_id, derived_ind, no_hist_ind,
display_order, stored_precision, display_precision,
required_ind, mod_user, mod_dtime)
VALUES(SELECT MAX(id) + 1 FROM t_data_point, 'Object', 'ObjectName',
'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE);
你的用法可以只是 INSERT.. INTO.. SELECT..
INSERT INTO T_DATA(id, object_type, object_id,
measurement_id, derived_ind, no_hist_ind,
display_order, stored_precision, display_precision,
required_ind, mod_user, mod_dtime)
(SELECT MAX(id) + 1, 'Object', 'ObjectName',
'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE
FROM t_data_point);
要在 VALUES
中使用 SELECT
... 将它们嵌入括号中。
VALUES(
(SELECT MAX(id) + 1 FROM t_data_point),
...
)
编辑:
确保 INSERT
列中的表达式与 VALUES
匹配。
您提供的数据似乎少于插入所需的数据量。
插入 t_data(12 个表达式)VALUES(11 个表达式)
作为 MahMaheswaran 答案的替代方案。您仍然可以在使用 VALUES 的同时实现查询。您只需要将 SELECT 语句括在括号中即可。
INSERT INTO T_DATA (Id,
object_type,
object_id,
measurement_id,
derived_ind,
no_hist_ind,
display_order,
stored_precision,
display_precision,
required_ind,
mod_user,
mod_dtime)
VALUES (
(
SELECT
MAX(Id) + 1
FROM t_data_point
)
,
'Object',
'ObjectName',
'ID',
3,
0,
1,
2,
2,
0,
'TEST',
SYSDATE);
不过,我还是会用第一个答案。