`
youngxu
  • 浏览: 164041 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PostgreSQL全半角转换函数

阅读更多
曾在一个项目中,由于邮编字段的数字录入时没有进行数字校验,出现全角数字字符,后来用户要求将全角数字在PostgreSQL数据库中转为半角。受网上技术文章启发,自己写了一个plpgsql对应的全半角转换函数。在此记录下来。
--全半角转换函数
--text:转换源字符
--integer:1-全角,其它-半角
CREATE OR REPLACE FUNCTION convertstring(text, integer)
  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;
      
      IF ($2 = 1) THEN
        BEGIN
          --全角转半角
          IF (asciival = 12288) THEN  --空格
            asciival = 32;
          END IF;
          IF (asciival > 65280) AND (asciival < 65375) THEN
            SELECT asciival-65248 INTO asciival;
          END IF;
        END;
      ELSE
        BEGIN
          --半角转全角
          IF (asciival = 32) THEN --空格
            asciival = 12288;
          END IF;
          IF (asciival < 127) THEN
            SELECT asciival+65248 INTO asciival;
          END IF;
        END;
      END IF;
      
      SELECT chr(asciival) INTO tmp;
      
      SELECT textcat(retval, tmp) INTO retval;
    END LOOP;
    
    RETURN retval;
  END;
  $$
    LANGUAGE 'plpgsql'
    SECURITY DEFINER;
2
1
分享到:
评论

相关推荐

    postgres全角转半角函数.txt

    对postgresql数据库中不规则的数据批量处理查询,有些是全角的,需要转换查询,匹配,可以使用这个方法postgres全角转半角函数.txt

    postgresql 兼容 oracle 函数

    postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数

    PostgreSQL IF/IFNULL 函数 内核开发

    1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案

    postgresql汉字转拼音函数

    支持2万+汉字转拼音

    PostgreSQl函数部分阅读笔记

    PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数

    Python-基于PostgreSQLPostGIS的坐标转换函数

    基于PostgreSQL PostGIS的坐标转换函数,支持点、线、面的WGS84与GCJ02坐标互转

    PostgreSQL的Window分析函数源码优化

    《PostgreSQL的Window分析函数源码优化》 Window(窗口)函数作为关系数据库领域中内数据库分析技术的一种解决方案, 其精妙的语义特征使其能代替自连接和相关子查询等完成传统复杂查询功能,现已被广泛应用到互联网...

    postgresql 实现c language外部函数调用

    postgresql 实现c language外部函数调用,为了提高数据库信息安全及数据库性能,通过c language实现相关功能,并编译成动态链接库so方式,供数据库postgresql调用,在数据库端只见函数的实现接口,隐藏实现细节

    postgresql 字符串函数

    postgresql 字符串函数 收集各种字符串操作函数postgresql 字符串函数 收集各种字符串操作函数

    postgresql数据类型转换.pdf

    postgresql数据类型转换.pdf

    mysql转换postgresql工具

    国外大牛写的一个mysql数据库转换postgresql的脚本。亲试可以无错误运行。

    DB2到GreenPlum/PostgreSQL的转换指南

    详细描述了DB2与GreenPlum/PostgreSQL在各方面的差异,主要用于DB2数据库向GreenPlum/PostgreSQL数据库的迁移。

    postgresql 中文学习手册

    PostgreSQL学习手册(函数和操作符&lt;一&gt;) PostgreSQL学习手册(函数和操作符&lt;二&gt;) PostgreSQL学习手册(函数和操作符&lt;三&gt;) PostgreSQL学习手册(索引) PostgreSQL学习手册(事物隔离) PostgreSQL学习手册(性能提升技巧原理...

    PostgreSQL的DDL提取函数(ddlx)

    PostgreSQL的DDL提取函数(ddlx)-源码

    PostgreSQL 正则表达式 常用函数的总结

    PostgreSQL 正则表达式 常用函数的总结 对那些需要进行复杂数据处理的程序来说,正则表达式无疑是一个非常有用的工具。本文重点在于阐述 PostgreSQL 的一些常用正则表达式函数以及源码中的一些函数。 正则相关部分的...

    PostgreSQL全套课程

    PostgreSQL全套课程,全套24.73G,包含免密视频、课件、相关文档,课程目录: 01.PostgreSQL9 从零开始学数据库管理开发视频教程 18课 02.炼数深度学习PostgreSQL 15课 03.PostgreSQL 9.3 DBA5天培训 24课 04....

    mysql2postgresql, 转换mysql模式到 PostgreSQL.zip

    mysql2postgresql, 转换mysql模式到 PostgreSQL mysql2postgresql转换mysql模式和数据到 PostgreSQL用法使用命令在xml格式中创建转储: mysqldump --xml -u USER_NAME DB_NAME&gt; DUMP_FILE_NAME

Global site tag (gtag.js) - Google Analytics