1 sql修改char型变量的表长度变大时出现问题
首先,Oracle中char型和varchar2型数据类型 char型为固定长度(即不足长度时自动补空格),varchar2型为非固定长度,后续问题由此引发。
问题大致如下
将表中原始数据进行备份
某字段需要扩长度由10变为20,但是执行sql语句时不小心扩成30
alter table table_Name modify column_Name char(30); 数据导入
后续再modify为20时,报错 ORA_01441:无法减小列长度,因为一些值过大。
drop table table_Name;
重新建正确的表。表结构中由于字段长度变化导致无法插入时可以使用trim去空格,但是需要列出所有的表字段,目前本小白还没发现其他便捷方法,望有同仁知道予以补充。
2 插入表的数据中有&符号提示 enter value for cool
将地址符后面的变量数据当做变量处理。
解决方案:使用"\&" 将& 进行转义后插入