SQL:如何查找varchar列的内容是否为数字?

Leo*_*nel 2 sql oracle

我表中的一列是一个varchar,它应该只包含数值(我不能将定义更改为数字列).因此我的SQL查询:

select to_number(col1) from tbl1 where ...
Run Code Online (Sandbox Code Playgroud)

失败,因为对于某些行,列的内容不是数字.

select我可以使用什么查询来查找这些行?

我正在使用Oracle数据库

我正在寻找像is_number功能一样的东西.

Aar*_*ton 7

oracle中没有原生的"isnumeric"函数,但是此链接向您展示了如何制作一个:http: //www.oracle.com/technetwork/issue-archive/o44asktom-089519.html

CREATE OR REPLACE FUNCTION isnumeric(p_string in varchar2)
RETURN BOOLEAN
AS
    l_number number;
BEGIN
    l_number := p_string;
    RETURN TRUE;
EXCEPTION
    WHEN OTHERS THEN
        RETURN FALSE;
END;
/
Run Code Online (Sandbox Code Playgroud)