为什么这个insert语句抛出一个表达式错误?

Tan*_*ilo 0 sql oracle sql-insert

我正在使用Oracle SQL.为什么这个insert语句抛出一个表达式错误?

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);
Run Code Online (Sandbox Code Playgroud)

Mah*_*kar 5

你的用法可以就是 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);
Run Code Online (Sandbox Code Playgroud)

使用SELECT内部VALUES...将它们嵌入括号中.

VALUES(
       (SELECT MAX(id) + 1 FROM t_data_point),
       ...
      )
Run Code Online (Sandbox Code Playgroud)

编辑:

确保表达式在INSERT列中VALUES匹配.