sql – 如何判断Oracle中的值是否不是数值?
发布时间:2021-01-17 12:31:44 所属栏目:MsSql教程 来源:网络整理
导读:我有以下代码,如果我的值无效,则返回错误消息.如果给定的值不是数字,我想给出相同的错误消息. 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 ) (编辑:天瑞地安资讯网_瑞安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 在IF ELSE语句中删除临时表
- sql-server – 如何使用sql server 2008安全地销毁某些数据
- sql – 在VBA中从Access模块??传递参数时调用存储过程
- sql-server-2012 – 什么时候使用SQL Server Developer Edi
- 如何在SQL Server中将多行连接成一列?
- 实时输出PL/SQL
- .net – 如何在WPF DataGrid中定义自己的列?
- sql – dba_jobs_running:尝试从过程访问时,表或视图不存在
- 确定触发器正在处理的是插入,删除还是更新触发
- sql-server – 使用FreeTDS连接到MS SQL Server:错误20002
站长推荐
热点阅读

