暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-00923: 从关键字未找到预期的地方

askTom 2017-04-28
819

问题描述

(SQR 5528) 光标16中的ORACLE OCIStmtExecute错误923:
ORA-00923: 从关键字未找到预期的地方
SQL: 从PS_BEN_PROG_PARTIC a10,ps_employes中选择不同的B10.EMPLID
b10,PS_BEN_DEFN_PGM d10其中a10.EMPLID = b10.EMPLID和
a10.BENEFIT _ PROGRAM = d10.BENEFIT _ PROGRAM和a10.EFFDT = (选择
来自PS_BEN_PROG_PARTIC b10的最大值 (a10.EFFDT),其中a10.EMPLID =
b10.EMPLID) 和b10.FULL _ PART_TIME = 'P' 和d10.BENEFIT _ PROGRAM in
('Pt1','pt2','pt3','pt4','pt5') 并集选择不同的A101.EMPLID DO
从PS_BEN_PROG_PARTIC a101兼职写退休,
Ps_employses b101,PS_BEN_DEFN_PGM d101其中a101。emplid = b101。emplid
和a101。福利 _ 程序 = d101。福利 _ 程序和a101。effdt = (选择
来自PS_BEN_PROG_PARTIC d101的最大值 (a101.EFFDT),其中a101.EMPLID =
b101.EMPLID) 和B101.FULL _ PART_TIME = 'P' 和d101.benef_ 程序在
('Pt1','pt2','pt3','pt4','pt5') 并集选择不同的a102.emplid DO
从PS_BEN_PROG_PARTIC a102兼职写退休,
Ps_employses b102,PS_BEN_DEFN_PGM d102其中a102.EMPLID = b102.EMPLID
和a102。福利 _ 程序 = d102。福利 _ 程序和a102。effdt = (选择
PS_BEN_PROG_PARTIC d102的最大值 (d102.EFFDT),其中a102.EMPLID =
b102.EMPLID) 和a102.FULL _ PART_TIME = 'P' 和d102.benef_ 程序
= “rpt” 工会从ps_employers a103中选择不同的a103。
a103.FULL _ PART_TIME = 'F' Union选择不同的a104.emplid从
Ps_employers a104,其中a104.Full _ PART_TIME = 'F'


专家解答

我猜你的问题是 “为什么”?谁知道... 你只是剪贴了一条sql语句 :-)

但是,是的 .... 即使在我没有Peoplesoft的数据库上... 它是基本的语法错误

SQL> SELECT DISTINCT B10.EMPLID from PS_BEN_PROG_PARTIC a10, PS_EMPLOYEES
  2  b10, PS_BEN_DEFN_PGM d10 where a10.EMPLID = b10.EMPLID AND
  3  a10.BENEFIT_PROGRAM = d10.BENEFIT_PROGRAM AND a10.EFFDT = (select
  4  MAX(a10.EFFDT) from PS_BEN_PROG_PARTIC b10 where a10.EMPLID =
  5  b10.EMPLID) AND b10.FULL_PART_TIME = 'P' AND d10.BENEFIT_PROGRAM in
  6  ('PT1','PT2','PT3','PT4','PT5') UNION SELECT DISTINCT A101.EMPLID DO
  7  WRITE-RETIREMENT-FOR-PART-TIME from PS_BEN_PROG_PARTIC a101,
  8  PS_EMPLOYEES b101, PS_BEN_DEFN_PGM d101 where a101.EMPLID = b101.EMPLID
  9  and a101.BENEFIT_PROGRAM = d101.BENEFIT_PROGRAM and a101.EFFDT = (select
 10  MAX(a101.EFFDT) from PS_BEN_PROG_PARTIC d101 where a101.EMPLID =
 11  b101.EMPLID) AND B101.FULL_PART_TIME ='P' and d101.BENEFIT_PROGRAM in
 12  ('PT1', 'PT2', 'PT3', 'PT4', 'PT5') UNION select distinct a102.emplid DO
 13  WRITE-RETIREMENT-FOR-PART-TIME from PS_BEN_PROG_PARTIC a102,
 14  PS_EMPLOYEES b102, PS_BEN_DEFN_PGM d102 where a102.EMPLID = b102.EMPLID
 15  and a102.BENEFIT_PROGRAM = d102.BENEFIT_PROGRAM and a102.EFFDT = (select
 16  MAX(d102.EFFDT) from PS_BEN_PROG_PARTIC d102 where a102.EMPLID =
 17  b102.EMPLID) AND a102.FULL_PART_TIME ='P' and d102.BENEFIT_PROGRAM
 18  ='RPT' Union select distinct a103.EMPLID from PS_EMPLOYEES a103 where
 19  a103.FULL_PART_TIME = 'F' Union select distinct a104.emplid from
 20  PS_EMPLOYEES a104 where a104.FULL_PART_TIME = 'F' ;
WRITE-RETIREMENT-FOR-PART-TIME from PS_BEN_PROG_PARTIC a101,
*
ERROR at line 7:
ORA-00923: FROM keyword not found where expected
复制


你可以在第7行看到为什么...“做后面写……”

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论