3

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

问题:一些用户输入诸如“120,000”之类的值,这在尝试使用 to_char 时给了我一个错误。如果没有找到值,该函数还将返回一个空格“”。我之前尝试过使用 to_number ,但我相信它有问题。

问题:处理这个问题的最佳方法是什么?案例语句检查','?使用 to_number 然后使用 to_char?

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

4

1 回答 1

7

与其使用 REPLACE,不如使用更强大的REGEXP_REPLACE功能。 http://www.orafaq.com/wiki/REGEXP_REPLACE

然后,您可以从字符串中删除任何非数字字符,然后再按您喜欢的方式对其进行格式化。

在您的情况下,它将类似于:

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

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

也请参阅此答案: Oracle:替换字符串中的非数字字符

于 2012-01-30T22:05:34.997 回答