如果是C3P0的话,可以这样:
Method m;
CLOB clob = null;
m = CLOB.class.getMethod("createTemporary", new Class[] { Connection.class, boolean.class, int.class });
Object[] args = new Object[] { C3P0ProxyConnection.RAW_CONNECTION, Boolean.valueOf(true), new Integer(10) };
clob = (CLOB) ((C3P0ProxyConnection) conn).rawConnectionOperation(m, null, args);
如果你项目中有SPRING包的话,可以这样
OracleConnection connection;
if (conn instanceof NewProxyConnection) {
C3P0NativeJdbcExtractor snj=new C3P0NativeJdbcExtractor();
connection = (OracleConnection)snj.getNativeConnection(conn);
}else{
Jdbc4NativeJdbcExtractor snj=new Jdbc4NativeJdbcExtractor();
connection = (OracleConnection)snj.getNativeConnection(conn);
}
clob = oracle.sql.CLOB.createTemporary(connection,true,1);
Jdbc4NativeJdbcExtractor 在高版本的SPRING中, 这种写法支持proxool ,
网上99%都不靠谱,特此记录下,解决方法,以备查验.