0
点赞
收藏
分享

微信扫一扫

全角转半角函数

瀚高数据库

目录

环境

文档用途

详细信息


环境

系统平台:银河麒麟U系(CPU飞腾)4

版本:4.5

文档用途

将全角字符数字等转换为半角。

详细信息

---全角转半角函数如下

CREATE OR REPLACE FUNCTION convertstring(text)

 RETURNS text AS

$$

 DECLARE len INTEGER;

 DECLARE retval text;

 DECLARE tmp text;

 DECLARE asciival INT4;


 BEGIN

   --字符串字符个数

   SELECT textlen($1) INTO len;


   SELECT '' INTO retval;


   --循环

   FOR i IN 1..len LOOP

     --取单个字符

     SELECT substring($1, i, 1) INTO tmp;

     SELECT ascii(tmp) INTO asciival;


       BEGIN

         --全角转半角

         IF (asciival = 12288) THEN  --空格

           asciival = 32;

         END IF;

         IF (asciival > 65280) AND (asciival < 65375) THEN

           SELECT asciival-65248 INTO asciival;

         END IF;

       END;


     SELECT chr(asciival) INTO tmp;


     SELECT textcat(retval, tmp) INTO retval;

   END LOOP;


   RETURN retval;

 END;

 $$

   LANGUAGE 'plpgsql'


举报

相关推荐

0 条评论