本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7802969.html?templateId=171...
问题现象
某客户在使用触发器将 varchar (4000 char) 列的数据从表 A 复制到表 B 时,表 B 上列的数据与 A 上对应列的数据不同且为乱码。
如下截图为 A 的数据及使用触发器复制到 B 的数据:

问题的风险及影响
数据正确性无法保证。
问题影响的版本
所有的 YashanDB 版本
问题发生原因
YashanDB 在处理触发器场景下的 varchar (4000 char) 列的数据复制时,处理机制有误。
解决方法及规避方式
将列的长度修改为 varchar (2000 char) 或者更小。
问题分析和处理过程
使用如下的 SQL 可以验证 YashanDB 是否存在此问题:
drop trigger trigger1;drop table A;drop table B;create table A(tid number primary key not null, c1 varchar(4000 char));create table B(tid number primary key not null, c2 varchar(4000 char));create or replace trigger trigger1 after insert on A for each rowbegin insert into B values(:new.tid,:new.c1);end; /insert into A values(1,'abcd');commit;select * from B;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3060687/ ,如需转载,请注明出处,否则将追究法律责任。