加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于oracle如何处理insert语句过长的解决办法

(2011-08-05 11:23:10)
标签:

clob

blob

插入字符串过长

ora-01704

分类: oracle

private   void   setStringToClob(String   clobColumn,   String   clobString,
                        ResultSet   rs)   throws   SQLException,   IOException   {

                CLOB   clob   =   ((OracleResultSet)   rs).getCLOB(clobColumn);
                if   (clobString   ==   null)   {
                        clobString   =   " ";
                }
               
                Writer   outstream   =   clob.getCharacterOutputStream();

                try   {
                        outstream.write(clobString);
                }   catch   (IOException   ex)   {
                        throw   ex;
                }   finally   {
                        if   (outstream   !=   null)   {
                                try   {
                                        outstream.close();
                                }   catch   (IOException   ex)   {
                                        throw   ex;
                                }
                        }
                }
        }

//这段代码便是解决这个问题的关键,首先你要知道oracle的insert语句是有问题的,就是你在插入超过4000

//长的字符串的时候,就会报一个ORA-01704这个错误,这个错误是告诉你你的插入语句过长,不可执行,

//所以我们只能先去做个空插入,之后用流往oracle中去写入,这样就解决了oracle的问题,

//不过个人感觉oracle肯定会在下个版本的时候做改动的,时代的需求要求它必须做这个准备,呵呵

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有