Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103682369
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-07 07:57:37

作者:wenlq  出处:Unix爱好者家园unix-cd.com   
IDS7.31上测试通过.

create procedure dec(s1 varchar(255) )
  returning decimal(20,0) 

  define ss varchar(255);
  define tt char(1);
  define result decimal(20,0);
  define i integer;

  let ss = lower(s1);
  let ss = trim( both from ss );
  if  ( substr( ss, 1,1 ) = '0' and substr( ss,2,1 ) ='x' )
  then
     let ss = substr( ss,3 );
  end if

  let result = 0;

  for  i =1  to  length ( ss )
        let tt = substr( ss,i,1);
        let result = result * 16 +
                decode( tt,
                        'a',10,'b',11,
                        'c',12,'d',13,
                        'e',14,'f',15,
                         tt+0);
  end for
  return result 
end procedure;

阅读(1112) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~