急救:我的一个SQL语句抛出SQL语法错误:未找到预期的关键字FROM,不知所错何处! 把脚本放到SQL/PLUS执行一下就知道了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改成如下:SELECT * FROM (SELECT C.*,ROWNUM AS NUMROW FROM (SELECT ENGINE . NAME ,ENGINE_TOTAL . NAME , ENGINE_TOTAL . DEVELOP , ENGINE . DEVELOP , ENGINE . USETIME , ENGINE_TOTAL . USETIME , ENGINE . TIME , ENGINE_TOTAL . TIME , ENGINE . OTHERTYPE , ENGINE_TOTAL . OTHERTYPE , ENGINE . TYPE , ENGINE_TOTAL . TYPE , ENGINE . HISTORY , ENGINE_TOTAL . HISTORY , ENGINE . MANUFACTURE , ENGINE_TOTAL . MANUFACTURE , ENGINE . AREA , ENGINE_TOTAL . AREA , ENGINE_HS . POWER , ENGINE_WJ . POWER , ENGINE . POWER , ENGINE . PURPOSE , ENGINE_TOTAL .PURPOSE , ENGINE . FEATURE , ENGINE_TOTAL . FEATURE , ENGINE_HS . WIDTH , ENGINE_WJ . WIDTH , ENGINE . WIDTH , ENGINE_HS . HEIGHT , ENGINE_WJ . HIGH , ENGINE . HEIGHT FROM ENGINE_TOTAL FULL OUTER JOIN ENGINE ON ( ENGINE . ENGINEID = ENGINE_TOTAL . ENGINEID ) FULL OUTER JOIN ENGINE_WS ON ( ENGINE_WS . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WJ ON ( ENGINE_WJ . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WP ON ( ENGINE_WP . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_HS ON ( ENGINE_HS . ENGINEID = ENGINE . ENGINEID ) WHERE ROWNUM<21)C) WHERE NUMROW >=1**************************************************java.sql.SQLException: ORA-00918: 未明确定义列 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:241) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1477) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:677)以上两种都不行,如何改这个语句呢? 第二次错误主要是由于别名C中存在重复列第一个错误是由于第二个错误而想的解决办法,但是就出现找不到FROM关键字的错误,不知道如何解决了,求高手指点一下 改称如下的, 加个别名。 *后如果还有字段,必须用表别名SELECT * FROM (SELECT t.*, ROWNUM AS NUMROW FROM ( SELECT ENGINE.NAME , ENGINEPIC . DESCRIPTION , ENGINE . DEVELOP , ENGINE . USETIME , ENGINE . TIME , ENGINE . OTHERTYPE , ENGINE . TYPE , ENGINE . HISTORY , ENGINE . MANUFACTURE , ENGINE . AREA , ENGINE_HS . POWER , ENGINE_WJ . POWER , ENGINE . POWER , ENGINE . PURPOSE , ENGINE . FEATURE , ENGINE_HS . WIDTH , ENGINE_WJ . WIDTH , ENGINE . WIDTH , ENGINE_HS . HEIGHT , ENGINE_WJ . HIGH , ENGINE . HEIGHT , ENGINEPIC . PICDIC , ENGINEPIC . PICDIC2 FROM ENGINEPIC FULL OUTER JOIN ENGINE ON ( ENGINE . ENGINEID = ENGINEPIC . ENGINEID ) FULL OUTER JOIN ENGINE_WS ON ( ENGINE_WS . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WJ ON ( ENGINE_WJ . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WP ON ( ENGINE_WP . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_HS ON ( ENGINE_HS . ENGINEID = ENGINE . ENGINEID ) WHERE ROWNUM<21 ) t ) WHERE NUMROW >=1 分组求和问题 处理游标的FOR循环问题和记录变量问题 命名块遇到错误 利用plsql 如何获得指定目录下的文件信息? 如何定义常量,使其可以在另一个包中调用 Oracle可中如何插入多行记录 有没有什么办法快速建数据库呀!! 一个PL/SQL动态执行怎么解决问题?(在线等待) 客户端连接Oracle服务器 哪儿有developer/2000 的下载(国内)啊? 怎样测试用户模式的备份和恢复呢? oracle 数据导入: 不导aa和bb表,其余的都导怎么写?
ENGINE_TOTAL . NAME , ENGINE_TOTAL . DEVELOP , ENGINE . DEVELOP , ENGINE . US
ETIME , ENGINE_TOTAL . USETIME , ENGINE . TIME , ENGINE_TOTAL . TIME , ENGIN
E . OTHERTYPE , ENGINE_TOTAL . OTHERTYPE , ENGINE . TYPE , ENGINE_TOTAL . TYP
E , ENGINE . HISTORY , ENGINE_TOTAL . HISTORY , ENGINE . MANUFACTURE , ENGIN
E_TOTAL . MANUFACTURE , ENGINE . AREA , ENGINE_TOTAL . AREA , ENGINE_HS . POW
ER , ENGINE_WJ . POWER , ENGINE . POWER , ENGINE . PURPOSE , ENGINE_TOTAL .
PURPOSE , ENGINE . FEATURE , ENGINE_TOTAL . FEATURE , ENGINE_HS . WIDTH , EN
GINE_WJ . WIDTH , ENGINE . WIDTH , ENGINE_HS . HEIGHT , ENGINE_WJ . HIGH , E
NGINE . HEIGHT FROM ENGINE_TOTAL FULL OUTER JOIN ENGINE ON ( ENGINE . ENG
INEID = ENGINE_TOTAL . ENGINEID ) FULL OUTER JOIN ENGINE_WS ON ( ENGINE_WS .
ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WJ ON ( ENGINE_WJ . E
NGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WP ON ( ENGINE_WP . ENG
INEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_HS ON ( ENGINE_HS . ENGIN
EID = ENGINE . ENGINEID ) WHERE ROWNUM<21)C) WHERE NUMROW >=1
**************************************************
java.sql.SQLException: ORA-00918: 未明确定义列 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:241)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1477)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:
677)以上两种都不行,如何改这个语句呢?
第一个错误是由于第二个错误而想的解决办法,但是就出现找不到FROM关键字的错误,不知道如何解决了,求高手指点一下
SELECT t.*, ROWNUM AS NUMROW FROM
( SELECT ENGINE.NAME , ENGINEPIC . DESCRIPTION , ENGINE . DEVELOP , ENGINE . USETIME , ENGINE . TIME , ENGINE . OTHERTYPE , ENGINE . TYPE , ENGINE . HISTORY , ENGINE . MANUFACTURE , ENGINE . AREA , ENGINE_HS . POWER , ENGINE_WJ . POWER , ENGINE . POWER , ENGINE . PURPOSE , ENGINE . FEATURE , ENGINE_HS . WIDTH , ENGINE_WJ . WIDTH , ENGINE . WIDTH , ENGINE_HS . HEIGHT , ENGINE_WJ . HIGH , ENGINE . HEIGHT , ENGINEPIC . PICDIC , ENGINEPIC . PICDIC2
FROM
ENGINEPIC FULL OUTER JOIN ENGINE ON ( ENGINE . ENGINEID = ENGINEPIC . ENGINEID ) FULL OUTER JOIN ENGINE_WS ON ( ENGINE_WS . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WJ ON ( ENGINE_WJ . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_WP ON ( ENGINE_WP . ENGINEID = ENGINE . ENGINEID ) FULL OUTER JOIN ENGINE_HS ON ( ENGINE_HS . ENGINEID = ENGINE . ENGINEID )
WHERE ROWNUM<21 ) t )
WHERE NUMROW >=1