SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(1000)) FROM DUAL;我之后就查了一下文档,看见INTERVAL和字符类型是可以隐式转换的,显示转换使用to_char( )函数也没问题,但是使用CAST就出问题了…… oracle进城的内存占用很大好好奇问什么会出现这样的问题?~ ~
SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(1000)) FROM DUAL;我之后就查了一下文档,看见INTERVAL和字符类型是可以隐式转换的,显示转换使用to_char( )函数也没问题,但是使用CAST就出问题了…… oracle进城的内存占用很大好好奇问什么会出现这样的问题?~ ~
SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(10)) FROM DUAL
*
第 1 行出现错误:
ORA-25137: 数据值超出范围
SQL>当char的精度是10时,服务器不会core 但是报这个错误
这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。
把 char(10) 换成char(40),看结果,找规律
这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。
把 char(10) 换成char(40),看结果,找规律
嗯 但是还是不理解为什么char(1000)就出问题 ?