有个表字段类型是char(20)我想把他变为VARCHAR2(2)  可以实现吗? 里面有数据 几十万条  谢谢了

解决方案 »

  1.   

    如果该字段的所有值的长度都不超过2,那么就可以,否则只能改到MAX(LENGTH(your_column))
      

  2.   

    要是你的字段的实际长度等于2可以 超过的话不行 ,会截断
    改成的话也只能是varchar2(20) 
    或者精度为max(length(col))
    像这样截掉
    SQL> select cast('aaa' as varchar2(2)) from dual
      2  /CA
    --
    aa
      

  3.   

    不可以的,如果该字段的长度char(20)有可能超过2,那么改成varchar2(2)之后,原来的值就超过长度,
    如楼上所说,最大只能扩充到 select MAX(LENGTH(your_column)) from tab;