修改StatementUtil.setParam,解决oracle数据库setObject(inputStream)执行报错问题,java.sql.SQLException: 无效的列类型

This commit is contained in:
ecoolper 2024-04-14 19:25:02 +08:00
parent 8e91ef2938
commit e3c9b4d049

View File

@ -13,16 +13,10 @@ import cn.hutool.db.sql.SqlBuilder;
import cn.hutool.db.sql.SqlLog;
import cn.hutool.db.sql.SqlUtil;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.sql.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@ -380,6 +374,18 @@ public class StatementUtil {
// 忽略其它数字类型按照默认类型传入
}
//InputStream解决oracle情况下setObject(inputStream)报错问题java.sql.SQLException: 无效的列类型
if(param instanceof InputStream){
ps.setBinaryStream(paramIndex, (InputStream) param);
return;
}
//java.sql.Blob
if(param instanceof Blob){
ps.setBlob(paramIndex, (Blob) param);
}
// 其它参数类型
ps.setObject(paramIndex, param);
}