Oracle To_Char函数如果它已经是一个字符串,如何处理

时间:2012-01-30 19:04:58

标签: sql oracle formatting to-char

场景:我正在调用一个返回用户输入字段的函数。该字段通常返回一个类似'120000'的数字,然后我使用to_char转换为'120,000'。

问题:某些用户输入的值为“120,000”,这在尝试使用to_char时会出错。如果没有找到值,该函数也将返回一个空格''。我之前尝试过使用to_number的东西,但是我对''我相信。

有问题

问题:处理此问题的最佳方法是什么?案例陈述检查','?使用to_number然后to_char?

注意:我可以一起破解解决方案我只是想知道处理这个问题的最佳方法是什么。

1 个答案:

答案 0 :(得分:7)

您应该使用功能更强大的REGEXP_REPLACE函数,而不是使用REPLACE。 http://www.orafaq.com/wiki/REGEXP_REPLACE

然后,您可以从字符串中删除任何非数字字符,然后根据需要对其进行格式化。

在你的情况下,它会是这样的:

REGEXP_REPLACE(<your field>, '[^0-9]+', '');

这会将所有非数字字符替换为null,从而有效地将其从字符串中删除。

也可以看到这个答案: Oracle: Replacing non-numeric chars in a string