ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 查出数字字符字段中非数字字符的记录

查出数字字符字段中非数字字符的记录

原创 Linux操作系统 作者:陈安公 时间:2011-09-18 20:30:12 0 删除 编辑

最近,将原来的数字符字段转换为数字时,总报错误:无效数字。

如何找出其中哪些是非数字字符的记录?比较麻烦的事。下面是用Oracle DB自带的函数translate可以找出来的

1.创建测试表

Create Table TestChar(
    ITEM_NUMBER VARCHAR2(20)
);

 

2.手工插入测试记录

Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('4412');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('172');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('112');
Insert Into TestChar (ITEM_NUMBER) values ('1d2');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('125');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('712');
Insert Into TestChar (ITEM_NUMBER) values ('A712');
commit;

 

3.妙用Oracle 内置函数Translate找出非数字字符的记录

select trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#'))
  from TestChar
 Where trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#')) is not null;

 

作者:chenxianping 发表于2011-4-21 11:02:00 原文链接
阅读:38 评论:0 查看评论


Link URL: http://blog.csdn.net/chenxianping/article/details/6338045

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24077593/viewspace-707819/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-06-11

  • 博文量
    29
  • 访问量
    52511