Oracle数据库char(7)改为char(36)后,再改为varchar2(36)出现的问题

来源:互联网 发布:js中鼠标点击图片放大 编辑:程序博客网 时间:2024/05/16 18:52

案例:

原来表的结构

CREATE TABLE T_MD_DATA_ELEMENT (   ELEMENT_ID           CHAR(7)              NOT NULL)

由于需求的变化,字段长度需要改,实施人员把这个字段改为了CHAR(36),导致现场的项目有很多查询语句也需要改,后来我让实施人员改为

CREATE TABLE T_MD_DATA_ELEMENT (   ELEMENT_ID           VARCHAR2(36)              NOT NULL)
但结果还是有些模块不能正常使用,之前只知道从从CHAR(7)改为CHAR(36)后,原来的数据都变成了36位的字符串,不够36的话会以空格来补全。然后改为VARCHAR2(36)后,表里面的数据还是以空格补全的形式存在表里面,也就是之前那些自动补全的空格不会自动消失,就是这个原因导致了有些模块不能正常使用。后来在数据库中把ELEMENT_ID的值自动补全的空格去掉之后就可以正常使用了,真是一个坑。

0 0
原创粉丝点击