Oracle的一个SELECT语句把服务器弄coredump了

我鲁班无敌 2016-11-08 04:08:06

SELECT CAST(INTERVAL'1-1' YEAR TO MONTH AS CHAR(1000)) FROM DUAL;

我之后就查了一下文档,看见INTERVAL和字符类型是可以隐式转换的,显示转换使用to_char( )函数也没问题,但是使用CAST就出问题了…… oracle进城的内存占用很大

好好奇问什么会出现这样的问题?~ ~
...全文
399 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我鲁班无敌 2016-11-09
  • 打赏
  • 举报
回复
引用 4 楼 jdsnhan 的回复:
[quote=引用 1 楼 z601316152 的回复:] 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 但是报这个错误
这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。 把 char(10) 换成char(40),看结果,找规律 [/quote] 嗯 但是还是不理解为什么char(1000)就出问题 ?
jdsnhan 2016-11-09
  • 打赏
  • 举报
回复
引用 1 楼 z601316152 的回复:
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 但是报这个错误
这样,他只会把里面的内容看成字符串输出。现在字符串的长度是29,当然超出范围了。 把 char(10) 换成char(40),看结果,找规律
sxq129601 2016-11-09
  • 打赏
  • 举报
回复
说明你这个语句算法特别大或者是循环特别多消耗CPU,我就不试了省的宕机
我鲁班无敌 2016-11-08
  • 打赏
  • 举报
回复
呃呃 没人吗?
我鲁班无敌 2016-11-08
  • 打赏
  • 举报
回复
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 但是报这个错误

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧