sql – 如何判断Oracle中的值是否不是数值?
发布时间:2021-01-17 11:09:49 所属栏目:编程 来源:网络整理
导读:我有以下代码,假如我的值无效,则返回错误动静.假如给定的值不是数字,我想给出沟通的错误动静. IF(option_id = 0021) THEN IF((value10000) or (value7200000) or /* Numeric Check */)THEN ip_msg(6214,option_name); -- Error Message return; END IF;END IF
我有以下代码,假如我的值无效,则返回错误动静.假如给定的值不是数字,我想给出沟通的错误动静. IF(option_id = 0021) THEN IF((value<10000) or (value>7200000) or /* Numeric Check */)THEN ip_msg(6214,option_name); -- Error Message return; END IF; END IF; 在SQL Server中,我只行使了ISNUMERIC().我想在Oracle中做相同的工作.如, IF((!ISNUMERIC(value)) or (value<10000) or (value>7200000)) THEN ... 办理要领没有内置成果.你可以写一个CREATE FUNCTION is_numeric( p_str IN VARCHAR2 ) RETURN NUMBER IS l_num NUMBER; BEGIN l_num := to_number( p_str ); RETURN 1; EXCEPTION WHEN value_error THEN RETURN 0; END; 和/或 CREATE FUNCTION my_to_number( p_str IN VARCHAR2 ) RETURN NUMBER IS l_num NUMBER; BEGIN l_num := to_number( p_str ); RETURN l_num; EXCEPTION WHEN value_error THEN RETURN NULL; END; 然后你可以做 IF( is_numeric( str ) = 1 AND my_to_number( str ) >= 1000 AND my_to_number( str ) <= 7000 ) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读