ibatis sqlmap配置文件中sql语句不能最后加分号

在ibatis的sql配置文件中,如果是单独的sql语句,就是不是过程的情况下,写的sql语句是不能使用分号做结尾的,不然程序运行的时候会报

ora-00911: 无效字符

 

例如:

<select id="selectJobs" resultClass="com.tc.fts.ibatis.model.DbaJobs" parameterClass="String">
		<![CDATA[
        select t.JOB,t.LAST_DATE,t.THIS_DATE,t.NEXT_DATE,t.TOTAL_TIME,t.interval,t.FAILURES,t.WHAT 
        from sys.dba_jobs t 
        where t.LOG_USER='CTXSYS' and t.WHAT like '%$indexname$%';
        ]]>
	</select>

 就是因为最后加了一个分号会报错。

 

如果是过程或者程序片段就可以

<insert id="createJob" parameterClass="java.util.HashMap">
		<![CDATA[
		variable jobno number;
        begin 
        DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''$indexname$'',''$memory$'');', SYSDATE, '$interval$'); 
        commit; 
        END;
		]]>
	</insert>

 

 

具体的原因就是因为   “Oracle数据库接口对书写格式要求非常严格,有时候即使多加一个空格,多加一个逗号,分号,回车等都不行”。

 

常使用pl/sql developer的同志们都喜欢在sql语句的最后加一个分号,代表语句结束,但是用JDBC执行的时候会报错哦,希望大家注意。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值