ERROR内容:
; uncategorized SQLException; SQL state [72000]; error code [14702]; ORA-14702: The partition number is invalid or out-of-range
; nested exception is java.sql.BatchUpdateException: ORA-14702: The partition number is invalid or out-of-range
实际案例(表名等有变更)
创建一个含有 ord_num和class_id 两个分区的表 classTotal
当对该表进行insert操作的时候,通常会指定分区
例如(错误代码):
INSERT INTO classTotal
PARTITION FOR (${args.schoolNum,jdbcType=NUMBER},'${args.classId,jdbcType=VARCHAR }')
school_num
, class_id
, name
, number_people
, rank
VALUES(
${args.schoolNum,jdbcType=NUMBER}
, ${args.classId,jdbcType=VARCHAR }
, 'name' --无视
, 'number_people' --无视
, 'rank' --无视
)
错误原因:
当使用PARTITION FOR指定data插入分区位置时,有两点需要特别注意
1. 不能指定参数的类型
2.对于【VARCHAR2】类型的参数,要使用单引号【''】(当作普通参数的话,不可用单引号)
正确代码
INSERT INTO classTotal
PARTITION FOR (${args.schoolNum},'${args.classId}')
school_num
, class_id
, name
, number_people
, rank
VALUES(
${args.schoolNum,jdbcType=NUMBER}
, ${args.classId,jdbcType=VARCHAR }
, 'name' --无视
, 'number_people' --无视
, 'rank' --无视
)