是否可以使用存储过程将字符串(实际上是base64)插入数据库。我尝试了各种方法。而且大多数情况下,我遇到的错误是“#34;无法投射到"”。有时我的jboss服务器已经死了。
$nxt
在这种情况下,程序会说错误的参数类型。然后我搜索并阅读然后添加了一些代码。
private class AddItemSP extends StoredProcedure {
private static final String SPROC_NAME = "POST.addItem";
AddItemSP (DataSource ds) {
super(ds, SPROC_NAME);
declareParameter(new SqlParameter("in_image", Types.VARCHAR)); // oracle: in_image IN BLOB
declareParameter(new SqlOutParameter("out_state", Types.VARCHAR));
declareParameter(new SqlOutParameter("out_message", Types.VARCHAR));
compile();
}
public Map<String, Object> execute(String image) {
Map<String, Object> inputs = new HashMap<String, Object>();
inputs.put("in_image", image);
return super.execute(inputs);
}
}
并将该blob发送到过程,当然将Types.VARCHAR更改为Types.BLOB。仍然失败。
那么我做错了什么?