Discuz教程网

plsql中有没有判断某个字段是否是数字的函数

[复制链接]
authicon 千度 发表于 2010-10-26 05:13:32 | 显示全部楼层 |阅读模式

有心自己写个函数,但觉得很不爽,oracle提供这样的功能么



上一篇:请教一个oracle定时器报错的问题!
下一篇:新手求助-RMAN用sys用户连不上
authicon CNL 发表于 2010-10-26 06:23:24 | 显示全部楼层
没有吧,
可以这样变通一下:
用to_number函数,然后判断是否exception
authicon delubo 发表于 2010-10-26 07:43:01 | 显示全部楼层
检查这个字段是不是数字类型的不就行了
authicon qingyun 发表于 2010-10-26 10:17:47 | 显示全部楼层

create or replace PROCEDURE
  JUDGE_NUMBER(p_STR VARCHAR2,p_pose out pls_integer,p_char out varchar2)
is
   -- Author  : 青云
  -- Created : 2010-10-02 15:37:17
  -- Purpose : 判断字符串是否为纯数字,假设不是,返回位置和字符;假设是,返回0
  
begin
  
  WITH A AS
   (SELECT LEVEL lvl, substr(p_STR, LEVEL, 1) AS chr
   
      FROM dual
    CONNECT BY LEVEL <= length(p_STR))
  
  SELECT  lvl ,chr into p_pose,p_char
    FROM A
   WHERE chr NOT IN (SELECT TO_CHAR(LEVEL - 1) AS X
                     FROM DUAL
                   CONNECT BY LEVEL <= 10)
    AND ROWNUM=1;
                  
  exception
    when no_data_found then
      p_pose:=0;
     
end JUDGE_NUMBER;
authicon yukonboy 发表于 2010-10-26 12:38:07 | 显示全部楼层

你可以自己写一个存储过程来判断字段中每个字符是否为数字啊(在0到9之间),我在之前的公司时就碰到过判断条码中是否有数字的存储过程 。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 16:21

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表