如何解决oracle中的此错误Ora-25137“数据值超出范围”

问题描述 投票:0回答:2

如何解决此错误

ORA-25137:数据值超出范围
原因:来自 CAST 操作数的值大于 CAST 目标大小
行动:增加CAST目标的大小。

CAST
内部,我使用了一个具有数据类型长度18的列值,然后再次计算后,我使用另一个
CAST
来转换其具有相同长度18的数据类型,但在执行后,我收到了上面提到的错误。这是代码:

CAST((CAST(col1 as number(18,0)) * 100)/col2 as varchar(18))

如何解决这个错误?

sql oracle
2个回答
1
投票

尝试

as varchar2(18 char)

因为

varchar(18)
表示 18 个字节。


0
投票

您可能需要舍入您的内部 CAST,ROUND(CAST(col1 as number(18,0)) * 100)/col2, <#of decimal places>) 所以整个事情不会超出 varchar(18) 可以容纳的范围,或者增加您的varchar(18) 到 varchar()。

© www.soinside.com 2019 - 2024. All rights reserved.