如何解决此错误
ORA-25137:数据值超出范围
原因:来自 CAST 操作数的值大于 CAST 目标大小
行动:增加CAST目标的大小。
在
CAST
内部,我使用了一个具有数据类型长度18的列值,然后再次计算后,我使用另一个CAST
来转换其具有相同长度18的数据类型,但在执行后,我收到了上面提到的错误。这是代码:
CAST((CAST(col1 as number(18,0)) * 100)/col2 as varchar(18))
如何解决这个错误?
尝试
as varchar2(18 char)
因为
varchar(18)
表示 18 个字节。
您可能需要舍入您的内部 CAST,ROUND(CAST(col1 as number(18,0)) * 100)/col2, <#of decimal places>) 所以整个事情不会超出 varchar(18) 可以容纳的范围,或者增加您的varchar(18) 到 varchar()。