Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么此insert语句引发表达式丢失错误?_Sql_Oracle_Sql Insert - Fatal编程技术网

Sql 为什么此insert语句引发表达式丢失错误?

Sql 为什么此insert语句引发表达式丢失错误?,sql,oracle,sql-insert,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,

我正在使用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);

您的用法可以是插入。。进入选择..

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 MAX(id) + 1 FROM t_data_point),
       ...
      )
编辑:


确保
INSERT
列中的表达式与
值匹配。

您的用法可以是
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)
                  (SELECT MAX(id) + 1,  'Object', 'ObjectName', 
                        'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE
                         FROM t_data_point);
要使用
,请在
值中选择
。。。将它们嵌入括号中

VALUES(
       (SELECT MAX(id) + 1 FROM t_data_point),
       ...
      )
编辑:


确保
INSERT
列中的表达式与
VALUES
匹配。

您提供的数据似乎少于插入所需的数据量


在t_数据(12个表达式)中插入值(11个表达式)

您提供的数据似乎少于插入所需的数据量


在t_数据(12个表达式)中插入值(11个表达式)

作为Maheswaran答案的替代方法。您仍然可以在使用值的同时实现查询。您只需要将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);

然而,我仍然会使用第一个答案。

作为马赫斯瓦兰答案的替代。您仍然可以在使用值的同时实现查询。您只需要将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);

但是,我仍然会使用第一个答案。

值的
部分
select
没有被视为相应的数据类型。我猜,不要使用
select MAX(id)+1 FROM
生成唯一的id。使用一个序列,其他一切都将中断-而不是更早。值的
部分
select
未被视为相应的数据类型我猜不要使用
select MAX(id)+1 FROM
生成唯一的id。使用一个序列,其他的一切都将中断-而不是更早。