java.sql.SQLException: ORA-00911: 无效字符

fengjuanyou 2013-04-01 10:01:21
IBATIS报无效的字符错误
<insert id="initinsert" parameterClass="java.util.HashMap">
INSERT INTO t_servic_psrevalgrade_detail
(servic_psrevaluategradeid_deta,
servic_psrevaluategradeid,
level_id,
sys_res_code,
equipmentclassifyvalue,
auditingequipmentclassifyvalue,
roublereason,
isfault,
equiptroubleid)
SELECT sys_guid() servic_psrevaluategradeid,
#SERVIC_PSREVALUATEGRADEID# servic_psrevaluategradeid,
ss.level_id,
ss.sys_res_code sys_res_code,
decode(equiptroublegradecode, '一般(三类)', 2, '紧急(二类)', 3, '重大(一类)', 3, 1) equipmentclassifyvalue,
decode(equiptroublegradecode, '一般(三类)', 2, '紧急(二类)', 3, '重大(一类)', 3, 1) auditingequipmentclassifyvalue,
equiptroublecausedetail roublereason,
decode(q.equiptroubleid, NULL, '0', '1') isfault,
q.equiptroubleid equiptroubleid
FROM t_system_source ss,
(SELECT *
FROM t_sbqxtz qq
WHERE qq.equiptroubleid IN
(SELECT MAX(qqq.equiptroubleid)
FROM t_sbqxtz qqq
WHERE (qqq.sys_res_code,
decode(equiptroublegradecode, '一般(三类)', 1, '紧急(二类)', 2, '重大(一类)', 3, 4)) IN
(SELECT sys_res_code,
MAX(decode(qq.equiptroublegradecode, '一般(三类)', 1, '紧急(二类)', 2, '重大(一类)', 3, 4)) grade
FROM t_sbqxtz qq
WHERE qq.state != '5'
GROUP BY qq.sys_res_code)
AND qq.state != '5'
GROUP BY sys_res_code)) q
WHERE ss.sys_res_code = q.sys_res_code(+)
AND (ss.sys_res_code LIKE #SYS_RES_CODE#||'%' OR
ss.sys_res_code LIKE #SYS_RES_CODE#||'%' OR
ss.sys_res_code LIKE #SYS_RES_CODE#||'%')
ORDER BY ss.sys_res_code

</insert>

Caused by: com.toft.core3.jdbc.BadSqlGrammarException: Bad SQL grammar [equipclassify.initsh]; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/gdisoft/soms/biz/equipclassify/dao/equipclassify.xml.
--- The error occurred while applying a parameter map.
--- Check the equipclassify.initsh-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: ORA-00911: 无效字符

at com.toft.core3.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(Unknown Source)
at com.toft.core3.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Unknown Source)
at com.toft.core3.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Unknown Source)
at com.toft.core3.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Unknown Source)
at com.toft.core3.ibatis.support.AbstractIBatisDao.execute(Unknown Source)
at com.toft.core3.ibatis.support.AbstractIBatisDao.execute(Unknown Source)
at com.gdisoft.soms.biz.equipclassify.dao.EquipclassifyDao.initsh(EquipclassifyDao.java:103)
at com.gdisoft.soms.biz.equipclassify.service.EquipclassifyService.saveAssignNode(EquipclassifyService.java:79)
at com.gdisoft.soms.biz.equipclassify.action.EquipclassifyAction.saveAssignNode(EquipclassifyAction.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
... 32 more
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
积木 2013-04-01
  • 打赏
  • 举报
回复
引用 6 楼 lvzg_005 的回复:
看到这个sql,让我想到一句话:所有的业务逻辑都用sql写出来
这是一种选择,但是我认为很多商务逻辑不应该让DB承担的,DB只需要维护数据及完整性就好。 商务逻辑还是交给业务层去解决吧。这样也有利于负荷分散啊。
lvzg_005 2013-04-01
  • 打赏
  • 举报
回复
看到这个sql,让我想到一句话:所有的业务逻辑都用sql写出来
biany2 2013-04-01
  • 打赏
  • 举报
回复
很显然,sql文是mysql的吗 放到可视化sql工具里面运行一下,一般字段名写错 排查起来不难吧 很难么? 不难么? 不难啊! 不难? 真的不难! 真的不难? 真的不难! 真的? 真的! 好吧。。。。
  • 打赏
  • 举报
回复
equipclassify.initsh .点在数据库有特殊意思,换个名字吧
且活且珍惜 2013-04-01
  • 打赏
  • 举报
回复
没有预处理写sql吗,或者构建一个对象,这个多难找啊,看了楼下是毅力帝吗
tianma630 2013-04-01
  • 打赏
  • 举报
回复
某个字段写错了?核对看看
Artemis丶月 2013-04-01
  • 打赏
  • 举报
回复
我是小白么?你的insert语句怎么和我接触的差距怎么那么大呢?

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧