在 oracle 中插入查询显示错误 Missing Expression
Insert query in oracle showing error Missing Expression
insert into ASSET_MAIN_CATEGORIES values(select max(sno) from ASSET_MAIN_CATEGORIES,
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
我想插入 SNO 的最大值作为列值。但它显示 "Missing Expression Error"
我怎样才能做到这一点。
如有任何帮助,我们将不胜感激。
您需要用方括号将 select max 括起来,因为它是一个 SQL 语句:
insert into ASSET_MAIN_CATEGORIES values((select max(sno) from ASSET_MAIN_CATEGORIES), 'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
如有错误,最好在insert statement
中添加列名
至少有一些方法可以做到:
INSERT INTO ... VALUES 并在括号中嵌入 select 以便数据库对其求值:
insert into ASSET_MAIN_CATEGORIES values(
(select max(sno) from ASSET_MAIN_CATEGORIES),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
);
INSERT INTO ... SELECT 因为所有其他数据都是静态的:
insert into ASSET_MAIN_CATEGORIES
select
max(sno),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
from ASSET_MAIN_CATEGORIES
;
请注意,如果您没有指定要在 ASSET_MAIN_CATEGORIES
中填充的列,则数据库会假定您按照它们在此 table 中创建的顺序为所有列输入值。
这会起作用:-
我已经检查了我的表它的工作原理,示例代码来理解:
insert into b(col1,col2) select 7,(select max(col2) from b)
from dual;
您需要什么代码:-
insert into ASSET_MAIN_CATEGORIES(col1,col2,....,col10)
select (select max(col2) from ASSET_MAIN_CATEGORIES), 'PROD','AC
HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1)
from dual;
insert into ASSET_MAIN_CATEGORIES values(select max(sno) from ASSET_MAIN_CATEGORIES, 'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
我想插入 SNO 的最大值作为列值。但它显示 "Missing Expression Error"
我怎样才能做到这一点。
如有任何帮助,我们将不胜感激。
您需要用方括号将 select max 括起来,因为它是一个 SQL 语句:
insert into ASSET_MAIN_CATEGORIES values((select max(sno) from ASSET_MAIN_CATEGORIES), 'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1);
如有错误,最好在insert statement
中添加列名至少有一些方法可以做到:
INSERT INTO ... VALUES 并在括号中嵌入 select 以便数据库对其求值:
insert into ASSET_MAIN_CATEGORIES values(
(select max(sno) from ASSET_MAIN_CATEGORIES),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
);
INSERT INTO ... SELECT 因为所有其他数据都是静态的:
insert into ASSET_MAIN_CATEGORIES
select
max(sno),
'PROD','AC HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1
from ASSET_MAIN_CATEGORIES
;
请注意,如果您没有指定要在 ASSET_MAIN_CATEGORIES
中填充的列,则数据库会假定您按照它们在此 table 中创建的顺序为所有列输入值。
这会起作用:-
我已经检查了我的表它的工作原理,示例代码来理解:
insert into b(col1,col2) select 7,(select max(col2) from b)
from dual;
您需要什么代码:-
insert into ASSET_MAIN_CATEGORIES(col1,col2,....,col10)
select (select max(col2) from ASSET_MAIN_CATEGORIES), 'PROD','AC
HMU','AC_HMU','PRODUCT','99CS002','','NR','LKO',1)
from dual;