解决oracle中插入大字段时,报ORA-01461错。

    使用架构:

                          spring - boot    mybatis     oracle


    产生错误原因:

                          由于不同Oracle版本的客户端驱动版本对中文解析的长度不一致;并且对入参的长度也有限制。

    

    解决方法:

                          使用DECLARE声明属于大字段类型的field,然后再SQL中引用就可以。

    

    例子:

                         DECLARE
                           
PAGECONTENT BDACSI_META_PAGEMODULE.PAGECONTENT %TYPE;
                            CPTSIZE BDACSI_META_PAGEMODULE.CPTSIZE %TYPE;
                            CPTPOSITION BDACSI_META_PAGEMODULE.CPTPOSITION %TYPE;
                            CPTMODEL BDACSI_META_PAGEMODULE.CPTMODEL %TYPE;
                            PAGETABLE BDACSI_META_PAGEMODULE.PAGETABLE %TYPE;
                            USERCONTENT BDACSI_META_PAGEMODULE.USERCONTENT %TYPE;
                        BEGIN
                         
  PAGECONTENT:=#{cp.pageContent};
                            CPTSIZE:=#{cp.cptSize};
                            CPTPOSITION:=#{cp.cptPosition};
                            CPTMODEL:=#{cp.cptModel};
                            PAGETABLE:=#{cp.pageTable};
                            USERCONTENT:=#{cp.userContent};
                        INSERT INTO BDACSI_META_PAGEMODULE T1

                           (T1.ID, T1.PAGEID, T1.PAGECONTENT, T1.CPTSIZE, T1.CPTPOSITION, T1.CPTMODEL,                                     T1.PAGETABLE, T1.USERCONTENT)
                        VALUES
                         
 (#{cp.id},#{cp.pageId}, PAGECONTENT, CPTSIZE, CPTPOSITION, CPTMODEL, PAGETABLE,                              USERCONTENT);
                        END;

                           

                          

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值