com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER相关的知识,希望对你有一定的参考价值。

2013-08-05 14:19:07 [com.alibaba.druid.filter.stat.StatFilter]-[ERROR] merge sql error, dbType oracle, sql :
SELECT COUNT(SERVICE_ID) FROM ( SELECT  SERVICE_ID,SYS_CREATOR_ID,SERVICE_NAME,SERVICE_ORDERDATE,SERVICE_TEMPLATE,SERVICE_TYPE,SERVICE_VOICEID,SERVICE_CONTENT,SERVICE_TEL,SERVICE_WORKFORMID,SERVICE_CALL_TYPE,SYS_CREATE_DATETIME,CALL_REVIEW_TYPE,PROCESSING_RESULT ,BELONG_TEAM,CITY,SERVICE_TYPE_LEVEL2,SERVICE_TYPE_LEVEL3,FROM_TYPE_LEVEL1,FROM_TYPE_LEVEL2,CUSTOMER_ID,CUSTOMER_TYPE,CUSTOMER_NAME,CUSTOMER_IDENTITYID,QUALITY_SERVICE_TYPE,QUALITY_SERVICE_TWO,QUALITY_SERVICE_THREE, REGISTREASON,APPLY_CHANNEL,CONSULTING_CHANNEL,APPLY_CHANNEL_REMARK,BUSINESS_CHANNEL,WIRING_STATUS,WORK_SEND_STATUS,MOBILE,SERVICE_TEL_TYPE,REMARK,STATUS,SYS_LAST_MODIFY_DATETIME,SOLUTION,RELAY_TEL, ( select ui.last_name from user_info ui where ui.login_name=SYS_CREATOR_ID ) SEATNAME, SYS_CALL_BEGINTIME,SYS_ONLINE_SOLVE,SEX,CRM_SOURCE FROM SERVICE_INFO WHERE 1=1 and SYS_CREATOR_ID = 'admincc' union SELECT  SERVICE_ID,SYS_CREATOR_ID,SERVICE_NAME,SERVICE_ORDERDATE,SERVICE_TEMPLATE,SERVICE_TYPE,SERVICE_VOICEID,SERVICE_CONTENT,SERVICE_TEL,SERVICE_WORKFORMID,SERVICE_CALL_TYPE,SYS_CREATE_DATETIME,CALL_REVIEW_TYPE,PROCESSING_RESULT ,BELONG_TEAM,CITY,SERVICE_TYPE_LEVEL2,SERVICE_TYPE_LEVEL3,FROM_TYPE_LEVEL1,FROM_TYPE_LEVEL2,CUSTOMER_ID,CUSTOMER_TYPE,CUSTOMER_NAME,CUSTOMER_IDENTITYID,QUALITY_SERVICE_TYPE,QUALITY_SERVICE_TWO,QUALITY_SERVICE_THREE, REGISTREASON,APPLY_CHANNEL,CONSULTING_CHANNEL,APPLY_CHANNEL_REMARK,BUSINESS_CHANNEL,WIRING_STATUS,WORK_SEND_STATUS,MOBILE,SERVICE_TEL_TYPE,REMARK,STATUS,SYS_LAST_MODIFY_DATETIME,SOLUTION,RELAY_TEL, ( select ui.last_name from user_info ui where ui.login_name=SYS_CREATOR_ID ) SEATNAME, SYS_CALL_BEGINTIME,SYS_ONLINE_SOLVE,SEX,CRM_SOURCE FROM SERVICE_INFO WHERE 1=1 and SYS_CREATOR_ID = 'admincc') T order by sys_create_datetime DESC
com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER
at com.alibaba.druid.sql.dialect.oracle.parser.OracleSelectParser.parseTableSource(OracleSelectParser.java:715)
at com.alibaba.druid.sql.parser.SQLSelectParser.parseFrom(SQLSelectParser.java:286)
at com.alibaba.druid.sql.dialect.oracle.parser.OracleSelectParser.query(OracleSelectParser.java:272)
at com.alibaba.druid.sql.dialect.oracle.parser.OracleSelectParser.select(OracleSelectParser.java:88)
at com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser.parseStatementList
执行sql报错,但是将sql拷贝出来执行,没有报错,真心请教

参考技术A

解决方法如下:将这个“INPUT_VAL=#input_val#” 改成“INPUT_VAL=#input_val:VARCHAR#”即可。

sql即系结构化查询语言(英文简称:SQL),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言(SQL)是高级的非过程化编程语言,允许用户在高层数据结构上工作,它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。

SQL可以使用相同的结构化查询语言作为数据输入与管理的接口,结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

参考技术B 看意思,是SQL太复杂,解析不了 参考技术C 说明你的代码不够好!可以优化。IDENTIFIER解析出错!! 参考技术D 我也是同样的问题 第5个回答  2013-08-05 执行的时候注意下是否在要执行的那个数据库中。。数据库名称什么的些的对否

以上是关于com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER的主要内容,如果未能解决你的问题,请参考以下文章