ORA-00936: 缺少表达式
Posted
技术标签:
【中文标题】ORA-00936: 缺少表达式【英文标题】:ORA-00936: missing expression 【发布时间】:2015-03-05 08:11:38 【问题描述】:我试图解决这个问题,但它仍然存在。 你能帮我解决吗?
insert into diskgroup_size ( type1 , name , total_mb , used )
VALUES ( SELECT 'BANK', name, total_mb, (total_mb-free_mb) as "USED"
from v$asm_diskgroup_stat@T24PRD ) ;
注意: 当我使用不带 insert 的 select 语句时,我得到了所有数据。
【问题讨论】:
【参考方案1】:当您使用insert ... select
时,您不使用values
子句:
insert into diskgroup_size ( type1 , name , total_mb , used )
SELECT 'BANK',name,total_mb,(total_mb-free_mb)
from v$asm_diskgroup_stat@T24PRD ;
syntax diagram in the documentation 表明您使用了值子句或子查询,而不是两者。
【讨论】:
【参考方案2】:使用INSERT SELECT
而不是INSERT VALUES
:
insert into diskgroup_size ( type1 , name , total_mb , used )
SELECT 'BANK', name, total_mb, (total_mb-free_mb) as "USED"
from v$asm_diskgroup_stat@T24PRD
【讨论】:
【参考方案3】:你没有正确使用INSERT
statement,试试这个查询:
INSERT INTO diskgroup_size ( type1 , name , total_mb , used )
SELECT 'BANK',name,total_mb,(total_mb-free_mb) as "USED"
FROM v$asm_diskgroup_stat@T24PRD
希望对你有帮助
【讨论】:
以上是关于ORA-00936: 缺少表达式的主要内容,如果未能解决你的问题,请参考以下文章