具体报错信息如下:
09: 41: 02,016 [374010909 @ qtp-497872115-7] ERREUR ccibs.action.SyncCommonTrsAction -入库出错: opération SqlMapClient; SQLException pour SQL [] Non classé; État SQL [72000]; code d'erreur [1465];
- L'erreur est survenue dans META-INF / config / SQL-mapping / qrdcar.xml.
- L'erreur est survenue lors de l' application d' une carte de paramètres.
- Vérifier la qrdcar.insertSendDataInfo-InlineParameterMap.
- Vérifiez l'instruction (mise à jour n'a pas).
- Cause: java.sql.SQLException: ORA-01465:无效的十六进制数字
; exception imbriquée est com.ibatis.common.jdbc.exception.NestedSQLException:
- L'erreur est survenue dans META-INF / config / SQL-mapping / qrdcar.xml.
- L'erreur est survenue lors de l' application d' une carte de paramètres.
- Vérifier la qrdcar.insertSendDataInfo-InlineParameterMap.
- la vérification à la déclaration de (mise à jour n'a pas la).
- dans la cause: java.sql.SQLException: ORA-01465: invalide chiffre hexadécimal
Code programme
. This.getSqlMap () INSERT ( "qrdcar.insertSendDataInfo", buildInsertMap (contexte) );
private Map **buildInsertMap(Context context)** {
Map insertMap = new HashMap();
insertMap.put(Constants.JNL_NO, context.getData(Constants.JNL_NO));
insertMap.put("BackstageTransCode", context.getData("TranId"));
insertMap.put("RequestTime", new Date());
insertMap.put("RequestData", JSONObject.toJSONString(context.getDataMap()));
insertMap.put("TrsState", "3");
//默认初始插入版本都是1
insertMap.put("Version", 1);
return insertMap;
}
mybatis的sql语句
insertion dans NoticeInfo
(
JnlNo,
BackstageTransCode,
RequestTime,
RequestData,
TrsState,
Version
)
valeurs (
# _JnlNo #,
# BackstageTransCode #,
# RequestTime #,
# RequestData #,
# TrsState #,
# # Version
)
La raison est donnée besoin de champ BLOB à convertir le stockage binaire, donc
1. sql # RequestData # modify to_blob (# RequestData #)
2. Le programme insertMap.put ( "RequestData", JSONObject.toJSONString ( context.getDataMap ())); modifié pour insertMap.put ( "RequestData", JSONObject.toJSONString ( context.getDataMap ()) getBytes ()) .;