使用架构:
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;