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执行的时候会报错哦,希望大家注意。

你可能感兴趣的:(oracle,sql,ibatis,jdbc)