查询在预期的地方找不到关键字错误 ora-00923
Posted
技术标签:
【中文标题】查询在预期的地方找不到关键字错误 ora-00923【英文标题】:Query giving error ora-00923 from keyword not found where expected 【发布时间】:2015-11-04 06:35:25 【问题描述】:我正在使用 Oracle 8i。当我尝试在下面运行此脚本时,我收到错误 ora-00923 from keyword not found where expected.
请找到我正在使用的以下查询。
select i.siid,
sp.access_point_status,
csp.id_number,
act.entry_time,
act.addnl_info,
row_num() over (partition by i.siid order by act.entry_time desc) act_row
from table_Service_point sp,
table_case_to_service_point csp,
table_case cs,
table_act_entry act,
(select distinct siid,
iopt.installedopts2axspoint
from table_installed_options iopt,
tmp_efms_clarify inp
where iopt.siid = inp.service_instance
and iopt.siid = 'DSL580155-105-1') i
where sp.objid = csp.case2servicepoint
and csp.id_number = cs.id_number
and cs.objid = act.act_entry2case
and sp.objid = i.installedopts2axspoint
【问题讨论】:
那个古老的 8i 版本的哪个确切版本?窗口函数(又名“分析函数”)是在 8.1 中添加的——它们在 8.0 中不可用(为什么你还在使用一个已经取消支持十多年的版本?) 【参考方案1】:尝试使用 row_number() 而不是 row_num()。
【讨论】:
【参考方案2】:oracle
中的单引号 ''
表示 characters
,而不是 names
。
替换
iopt.siid='DSL580155-105-1'
与
iopt.siid="DSL580155-105-1"
【讨论】:
你怎么知道有一个名为"DSL580155-105-1"
的列?另外:这对甲骨文来说没什么特别的。 SQL 标准定义了用单引号括起来的字符文字和用双引号括起来的标识符。【参考方案3】:
我确实认为row_number()
是正确的拼写,而不是row_num()
。谷歌它以了解更多关于它是如何工作的。另外,提醒一下,DSL580155-105-1
真的是一个专栏吗?
【讨论】:
以上是关于查询在预期的地方找不到关键字错误 ora-00923的主要内容,如果未能解决你的问题,请参考以下文章
错误:ORA-00923:在预期的地方找不到 FROM 关键字
ORA-00923: 使用 shell 脚本在预期的地方找不到 FROM 关键字
在 Oracle SQL 中使用 CTE(ORA-00923:在预期的地方找不到 FROM 关键字)