SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(1000)) FROM DUAL;我之后就查了一下文档,看见INTERVAL和字符类型是可以隐式转换的,显示转换使用to_char( )函数也没问题,但是使用CAST就出问题了…… oracle进城的内存占用很大好好奇问什么会出现这样的问题?~ ~  

解决方案 »

  1.   

    SQL> SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(10)) FROM DUAL;
    SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(10)) FROM DUAL
           *
    第 1 行出现错误:
    ORA-25137: 数据值超出范围
    SQL>当char的精度是10时,服务器不会core 但是报这个错误
      

  2.   

    说明你这个语句算法特别大或者是循环特别多消耗CPU,我就不试了省的宕机
      

  3.   


    这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。
    把 char(10) 换成char(40),看结果,找规律
      

  4.   


    这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。
    把 char(10) 换成char(40),看结果,找规律

    嗯  但是还是不理解为什么char(1000)就出问题 ?