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】:

你没有正确使用INSERTstatement,试试这个查询:

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: 缺少表达式的主要内容,如果未能解决你的问题,请参考以下文章

ORA 00936 缺少表达式

ORA-00936: 缺少表达式解决方案 - 转换函数

出现错误 ORA-00936: 缺少表达式

ora:00936 缺少表达式错误

ORA-00936: 缺少表达式 oracle

ORA-00936: 缺少表达式