我在使用TO_NUMBER ORACLE函数时遇到了麻烦。
查询
SELECT TO_NUMBER(varchar2_column)
FROM TABLE@ANOTHER_DB;
有效,但是如果我将TO_NUMBER
放在AVG
内,ORACLE将返回以下错误:
ORA-01722:无效的数字ORA-02063:ANOTHER_DB位置的前一行:0
查询如下:
SELECT AVG(TO_NUMBER(varchar2_column))
FROM TABLE@ANOTHER_DB;
有人可以帮我吗?预先感谢
答案 0 :(得分:1)
您可以使用以下查询来获取数据的有效格式掩码:
SELECT AVG(TO_NUMBER(varchar2_column, 'FM'||REGEXP_REPLACE(varchar2_column,'\d','0')))
FROM TABLE@ANOTHER_DB;
这将产生一个格式掩码,该掩码将所有数字字符替换为0,这应该适用于所有数据。