我的 Oracle SQL 查询在注释行上出现“ORA-00918:列定义不明确”错误

问题描述 投票:0回答:1

正如我在标题中所说,我收到 ORA-00918 错误,但问题是它指向的是整个注释行。 在下面的代码中,它是用 RED 编写并以 YELLOW 突出显示的行。我什至删除了上面的一个空行,错误仍然指向注释行。如果有人看到它可能指向的地方,请告诉我。在你多次查看代码之后,你通常就不再真正看到它了。 (这是我在此网站上的第一篇文章。如果我需要包含任何其他信息,请告诉我。) 代码如下:----- `使用 SEL_DKTS 作为 ( 选择 DISTINCT -- 计数(distinct c.dscr) --DISTINCT C.case_id、C.dscr CASE_NO_2、 TKL_CD, FNCDKTTXT150(C.case_id, dkt.dkt_id) DKT_TEXT , 案例
当 DKT_CD = 'CRMCERTCSO' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 时,例如“正在等待认证”
从 CSOSA 收到的记录 然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 47, 5) WHEN DKT_CD = 'CRMCERTCSO' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 就像'记录认证
从 CSOSA 收到%' 然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 39, 5) 当 DKT_CD = 'CRMCERTPSA' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 时,如 'PENDING 认证 从 PSA 收到的记录
然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 47, 3) WHEN DKT_CD = 'CRMCERTCSO' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 就像'记录认证 从 PSA%' 收到 然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 39, 3) 当 DKT_CD = 'CRMCERTDOC' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 时,如 'PENDING 认证 从 DOC 收到的记录 然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 47, 3) WHEN DKT_CD = 'CRMCERTCSO' 和 FNCDKTTXT150(C.case_id, dkt.dkt_id) 就像'记录认证 从 DOC%' 收到 然后 SUBSTR(FNCDKTTXT150(C.case_id, dkt.dkt_id), 39, 3) 否则“ERROR_PEND” 结束为 dkt_text_CMMNT
来自 TKL、REAL_CASE C、DKT 其中 TKL.case_id = C.case_id 且 TKL.case_id = DKT.case_id 并且 DKT.dkt_st_cd 为 NULL 并且 to_char(TKL.entry_dt, 'YYYYMMDD') >= '20180801' 且
to_char(TKL.entry_dt, 'YYYYMMDD') <= '20180831' and
(FNCDKTTXT150(C.case_id, dkt.dkt_id) 如“从%PENDING收到的记录证明”或 FNCDKTTXT150(C.case_id, dkt.dkt_id) 就像“待认证%”)并且 ('CRMSEAL') 中的 TKL.tkl_cd 和 DKT.dkt_cd 类似 'CRMCERT%' )

,SEL_TKL as ( 
  select S1.case_id, S1.CASE_NO_2, TKL.CASE_ID, TKL.SEQ, TKL.TKL_CD, TKL.ENTRY_DT, TKL.COMPLETION_DT, 
         fnctklTxt500(TKL.CASE_ID, TKL.SEQ) TKL_CMNT, S1.DKT_TEXT_CMMNT
   from SEL_DKTS S1, TKL
 where 
    S1.case_id = TKL.case_id and
    TKL.tkl_cd = 'CRMSEAL'                 )


/* ********************************************************************** */     
/* ********************* CONNECT PIECES TOGETHER  *********************** */     
/* ********************************************************************** */  *<----line with error*

SELECT      DISTINCT
   S1.case_id,
   S1.CASE_NO_2,   
   S2.TKL_CD, S2.ENTRY_DT, 
   S1.DKT_TEXT_CMMNT,   
   S1.dkt_text
 FROM SEL_DKTS S1, SEL_TKL S2  
 WHERE S1.case_id = S2.case_id    
 ORDER BY S1.case_no_2` 
sql oracle-sqldeveloper ora-00918
1个回答
0
投票

我发现我对代码的所有仔细格式化都因行太长而丢失了。抱歉,这只是 CASE 语句的详细信息,我认为这不会影响错误消息。

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