您的位置:首页 > 数据库 > Oracle

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

2016-04-08 14:02 453 查看
案例:

原来表的结构

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的值自动补全的空格去掉之后就可以正常使用了,真是一个坑。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: