oracle数据库中有一个字段类型为varchar2(40),但是sqlserver的相应字段类型为varchar(30)。
请问有什么函数能在select oracle数据时 将varchar2(40)的数据长度缩短为30。不能修改oracle和sqlserver的数据库结构。而且oracle中字段varchar2(40)实际使用长度就20多。
急~

解决方案 »

  1.   


    在select的时候有么有办法吗?之前有个人做过,但是找不到怎么做的了
      

  2.   

    select ??取出来的长度就是你实际存储字符的长度啊,
    VARCHAR2()本身就是变长的类型,里面的40,的含义是最长能够存储的字节数,而不是类型的长度...
      

  3.   

    oracle的varchar2是变长啊,他显示长度是跟你值的长度来的
      

  4.   

    select length(substr(b.a,1,30)) from b
      

  5.   

    -- 实际长度是多少就是多少嘛,你是想将字段的长度属性缩短?
    alter table table_name column_name varchar2(30);
      

  6.   


    -- 还是取这个字段的前30个字符呢?取字段的前N个字符的话,用substr()函数!
      

  7.   


    嗯,谢谢,用substr()成功了。
    以为有什么特别的函数方法,之前一直没有考虑过直接截取长度。