首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行查询时发生ORA-00923错误

执行查询时发生ORA-00923错误
EN

Stack Overflow用户
提问于 2017-11-08 14:23:27
回答 1查看 471关注 0票数 0

为了查看输出,我使用了下面的查询,但是我得到了下面的错误消息。你能帮我一下吗?

查询:

代码语言:javascript
复制
SELECT REGEXP_SUBSTR(pr.Asset, '(.+):.+@',1,1,'i',1) as pr.instancename ,
upper(REGEXP_SUBSTR(pr.Asset, '.+@(.+)s-',1,1,'i',1)) as pr.Servername,
Asset,asset_type,check_category,check_desc,custom_attributes,check_id,db_attributes,occurances,organization,result_status,risk
FROM table1 pr
left join table2 ser on pr.Servername = ser.server_component_name

输出错误:

代码语言:javascript
复制
ORA-00923: FROM keyword not found where expected
00923. 00000 -  "FROM keyword not found where expected"
*Cause:    
*Action:
Error at Line: 1 Column: 59

有人能帮帮我吗。

致以敬意,

巴拉特·维卡斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 14:40:33

有几件事不对劲。

  • 如果对计算值使用别名,则不要将表别名添加到其中。这不是桌子上的一列。
  • 不能将表直接连接到计算值的别名。但是将它封装在子查询中,您就可以使用它了。

示例:

代码语言:javascript
复制
SELECT *
FROM (
 select 
   REGEXP_SUBSTR(Asset, '(.+):.+@',1,1,'i',1) as InstanceName,
   upper(REGEXP_SUBSTR(Asset, '.+@(.+)s-',1,1,'i',1)) as ServerName,
   Asset, asset_type, check_category, check_desc,custom_attributes, 
   check_id, db_attributes, occurances, organization, result_status, 
   risk
 from table1
) pr
left join table2 ser on (pr.ServerName = ser.server_component_name);

免责声明:仅在记事本中测试

一些简化的例子:

代码语言:javascript
复制
-- BAD : an alias using an alias
select UPPER(f.bar) as f.UberBar 
from Foo f

-- BAD : Foo doesn't have an UberBar column
select UPPER(bar) as UberBar 
from Foo 
where UberBar = 'BAR'

-- OK : wrapped in a subquery and using the alias in the outer query
select * from (
   select UPPER(bar) as UberBar 
   from Foo
) as Q 
where Q.UberBar = 'BAR'

-- OK : repeat the calculation of the value in the ON of the JOIN, or the WHERE clause
select UPPER(bar) as UberBar 
from Foo
where UPPER(bar) = 'BAR'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47182190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档