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

来源:互联网 发布:网络机柜标准 编辑:程序博客网 时间:2024/05/15 12:15

    使用架构:

                          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;

                           

                          

原创粉丝点击