PL/SQL prompts "ORA-01722: invalid number, find the invalid number

 创建一个FUNCTION
CREATE OR REPLACE FUNCTION isnumeric(str IN VARCHAR2)
    RETURN NUMBER
IS
    v_str FLOAT;
BEGIN
    IF str IS NULL
    THEN
       RETURN 0;
    ELSE
       BEGIN
          SELECT TO_NUMBER (str)
            INTO v_str
            FROM DUAL;
       EXCEPTION
          WHEN INVALID_NUMBER
          THEN
             RETURN 0;
       END;
       RETURN 1;
    END IF;
END isnumeric;
根据FUNCTION查找无效数字,并修改。
select * from table_name where isnumeric(column_name) = 0

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325063552&siteId=291194637