insert into RAW_MSG_BATCH
//设置为true
SERAIL,//主键
OCC_DATE,
OCC_TIME,
STATE,
MSG,
BSN_CD,
MSG_TYPE,
PRIOR1,
SEND_TIMES,
SEND_TIME,
REPORT_FLAG,
SEND_WAY,
CUSTOM_ID,
IN_CHANNLE,
IN_CHAN_CUSTOM_ID,
OUT_CHANNLE,
OUT_CHAN_CUSTOM_ID,
FILTER,
GROUP_ID,
BAT_ID,
BAT_ORDER,
BAT_SLICE,
SPLIT_FLAG,
LINK_FLAG,
MSG_REMARK,
SEND_NOW,
SCH_BEG_TIME,
SCH_END_TIME,
OPE,
ORG,
//设置为true
serial.nextval,
#{occDate,jdbcType=TIMESTAMP},
#{occTime,jdbcType=TIMESTAMP},
#{state,jdbcType=DECIMAL},
#{msg,jdbcType=VARCHAR},
#{bsnCd,jdbcType=CHAR},
#{msgType,jdbcType=DECIMAL},
#{prior,jdbcType=DECIMAL},
#{sendTimes,jdbcType=DECIMAL},
#{sendTime,jdbcType=TIMESTAMP},
#{reportFlag,jdbcType=DECIMAL},
#{sendWay,jdbcType=DECIMAL},
#{customId,jdbcType=CHAR},
#{inChannle,jdbcType=CHAR},
#{inChanCustomId,jdbcType=VARCHAR},
#{outChannle,jdbcType=CHAR},
#{outChanCustomId,jdbcType=VARCHAR},
#{filter,jdbcType=DECIMAL},
#{groupId,jdbcType=DECIMAL},
#{batId,jdbcType=DECIMAL},
#{batOrder,jdbcType=DECIMAL},
#{batSlice,jdbcType=DECIMAL},
#{splitFlag,jdbcType=DECIMAL},
#{linkFlag,jdbcType=DECIMAL},
#{msgRemark,jdbcType=VARCHAR},
#{sendNow,jdbcType=DECIMAL},
#{schBegTime,jdbcType=TIMESTAMP},
#{schEndTime,jdbcType=TIMESTAMP},
#{ope,jdbcType=CHAR},
#{org,jdbcType=CHAR},
如果主键表达式不为true,例:test=“serial != null”或test="serial == null"或删除标签等,极有可能报:
ORA-00913: 值过多
ORA-00947: 没有足够的值
出现不支持的 SQL92 标记: 654: SERIAL
等等错误,
经过检验:还是设置为true后,oracle序列号起作用了,插入语句正确运行。
注:像什么先查序列号再插入主键的,经测试在这个trim语句中无效。