select cast('a' as nvarchar2(4000)) from dual
nvarchar2最大不是4000 吗?  为什么执行上面一句的时候会说 超出了数据类型的长度

解决方案 »

  1.   

    语法错误,怎么可以用mssql的语法呢
      

  2.   


    语法那里错了 ?  cast吗  在Oracle里面可以的
      

  3.   

    SQL> select cast('a' as varchar2(4000)) from dual;
     
    CAST('A'ASVARCHAR2(4000))
    --------------------------------------------------------------------------------
    a
     
    SQL> 是varchar2
      

  4.   

    pl/sql中varchar2变量最大允许长度32678
    可是建表varchar2最大只有4000();
    楼上的nvarchar2的最大长度也只能是2000
      

  5.   

    nvarchar2只能保存AL16UTF16 or UTF8这两种字符集,这两种字符集每一个字符都是双字节的,所以你最多可以select cast('a' as nvarchar2(2000)) from dual
      

  6.   

    nvarchar2(2000)  不区别汉字和字母
    varchar2(4000)  只能存储2000 个汉字
      

  7.   

    nvarchar2长度最大2000.
    你把你sql中的改成2000就对了。
      

  8.   

    nvarchar2最大2000
    varchar2 最大4000