如何解决ORA 00936缺少表达式错误?

问题描述 投票:10回答:5
Select /*+USE_HASH( a b ) */ to_char(date, 'MM/DD/YYYY HH24:MI:SS') as LABEL,
ltrim(rtrim(substr(oled, 9, 16))) as VALUE,
from rrfh a, rrf b,
where ltrim(rtrim(substr(oled, 1, 9))) = 'stata kish' 
and a.xyz = b.xyz 

上面查询的“from”(第3行)部分给了我ORA-00936 Missing EXPRESSION error。请帮我

注意:: rrfh表不包含任何数据。

oracle oracle10g ora-00936
5个回答
15
投票

删除逗号?

select /*+USE_HASH( a b ) */ to_char(date, 'MM/DD/YYYY HH24:MI:SS') as LABEL,
ltrim(rtrim(substr(oled, 9, 16))) as VALUE
from rrfh a, rrf b
where ltrim(rtrim(substr(oled, 1, 9))) = 'stata kish' 
and a.xyz = b.xyz

看看FROM

从多个表中进行选择通过在每个表名之间列出逗号,可以在FROM子句中包含多个表


1
投票

这个答案不是上述问题的答案,但它与相同的主题有关,可能对搜索相同错误的人有用。

当我执行下面提到的查询时,我遇到了同样的错误。

select OR.* from ORDER_REL_STAT OR

上面查询的问题是OR是关键字,所以当我用其他一些别名替换它时,它正在期待其他值。


0
投票
update INC.PROV_CSP_DEMO_ADDR_TEMP pd 
set pd.practice_name = (
    select PRSQ_COMMENT FROM INC.CMC_PRSQ_SITE_QA PRSQ
    WHERE PRSQ.PRSQ_MCTR_ITEM = 'PRNM' 
    AND PRSQ.PRAD_ID = pd.provider_id
    AND PRSQ.PRAD_TYPE = pd.prov_addr_type
    AND ROWNUM = 1
)

0
投票

删除SELECT语句末尾的逗号(VALUE),并删除FROM语句末尾的逗号(rrfb,)


0
投票

每次插入/更新时都会发生这种情况,并且不使用单引号。当变量为空时,将导致该错误。使用''修复它

假设第一个参数是一个空变量,这是一个简单的例子:

错误

nvl( ,0)

固定

nvl('' ,0)

将您的查询放入数据库软件并检查它是否存在错误。通常这是一个简单的解决方案

© www.soinside.com 2019 - 2024. All rights reserved.