String 转oracle.sql.CLOB

前两天遇害到一个问题就是需要处理一字符型变量(该变量要作为参数传入存储过程执行),但其长度超长(长度小于32767时正常,大于时就报错)。后来想了很多的解决方案,最后决定先将其转换成CLOB,然后再将其以CLOB的方式传进去。

       是如何转换的呢?经过狂搜GOOGLE,BAIDU,并且不停地测试后,终于成功了。我现将其转换代码贴出来,为大家共享,以便后来人和我一样,为其苦闷不已(就为这,我可是花了一整天的时间)

oracle.sql.CLOB clob = oracle.sql.CLOB.createTemporary(
     conn, false,
     oracle.sql.CLOB.DURATION_SESSION);
   clob.open(oracle.sql.CLOB.MODE_READWRITE);
   writer = clob.getCharacterOutputStream();
   writer.write(parmSql.toCharArray());
   writer.flush();
   writer.close();

 

不要以为这样就行了,其实不然。这个我早就知道,难就难在驱动的问题(不要小看这,这可是个难点,如果你不知道的话,呵呵)。将驱动更换成最新OJDBC14。JAR。这个需要在ORALCE网上去下。

算了还是上传一份吧,现在的懒人也多。

你可能感兴趣的:(oracle,sql,Google)