Welcome 微信登录

首页 / 数据库 / MySQL / Oracle判断是否为数字或数字型字符串(sqlserver isnumeric)

需求:如果字段值不是数字或者数字型字符串,把该字段值update成"" 1.函数法(不能批量,舍弃):[sql]
  1. create   or   replace   function   isNumber(p_in   varchar2)   return   boolean   as   
  2.         i   number;   
  3. begin   
  4.         i:=to_number(p_in);   
  5.         return   true;   
  6. exception         
  7.         when   others   then     
  8.               return   false;   
  9. end   ;   
但是这个好像只能一个个判断,不能批量。2.[sql]
  1. SQL> select   nvl2(translate("333""1234567890 """), "is   characters ", "is   number ")   from   dual;  
  2.   
  3. NVL2(TRANSLATE("333","1234567  
  4. ------------------------------   
  5. is   number  
  6.   
  7. SQL> select   nvl2(translate(333, "1234567890 """), "is   characters", "is   number")   from   dual;  
  8.   
  9. NVL2(TRANSLATE(333,"123456789  
  10. ------------------------------   
  11. is   number  
  12.   
  13. SQL> select   nvl2(translate("aaaaa""1234567890 """), "is   characters", "is   number")   from   dual;  
  14.   
  15. NVL2(TRANSLATE("AAAAA","12345  
  16. ------------------------------   
  17. is   characters  
  18.   
  19. SQL>   
3.据说要批量,可以这样先查出来,没有试过:[sql]
  1. select   decode(nvl2(translate(column"1234567890 """), "0", "1") ,"1",column,"")  from   dual;  
我写的:[sql]
  1. Update T_87_Mtbuf Set SpCode="" Where  nvl2(translate(SpCode, "1234567890 """), "is   characters", "is   number ")="is   characters";  
补充一点:to_number(...)中只能接受数字如122或数字型字符串"122",接受"aaa"会报错“无效字符”。Oracle热备份只读表空间Oracle存储过程循环插入10000条数据相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数