曾在一个项目中,由于邮编字段的数字录入时没有进行数字校验,出现全角数字字符,后来用户要求将全角数字在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;
分享到:
相关推荐
对postgresql数据库中不规则的数据批量处理查询,有些是全角的,需要转换查询,匹配,可以使用这个方法postgres全角转半角函数.txt
1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案
3. **数学和转换函数**:如ROUND、TRUNC、TO_CHAR、TO_DATE等,这些在数据转换和计算中十分常用。 4. **游标和PL/SQL兼容性**:尽管PostgreSQL原生支持PL/pgSQL,但orafce提供了更接近Oracle的PL/SQL语法,包括游标...
对于数据类型的转换,PostgreSQL提供了多种函数和操作符,以下是几个常用的转换函数: 1. to_char():此函数用于将日期时间类型、整数或浮点数等数据转换为字符串。例如,将一个时间戳转换为格式化的字符串,如 'HH...
支持2万+汉字转拼音
- **存储过程**:DB2中的存储过程可能需要转换为GreenPlum/PostgreSQL中的存储过程或函数,因为后者的语法和行为有所不同。 #### 2.3 SQL谓词 SQL谓词是SQL语句中用来筛选结果集的关键部分,DB2与GreenPlum/...
PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数
总的来说,通过C语言创建PostgreSQL外部函数可以提高数据库的性能和安全性,因为它们允许直接在数据库内核级别操作数据,减少了数据转换和网络通信的开销。同时,将实现细节隐藏在数据库内部,有助于保护系统的整体...
postgresql 字符串函数 收集各种字符串操作函数postgresql 字符串函数 收集各种字符串操作函数
### PostgreSQL的Window分析函数源码优化 #### 一、Window函数概述 Window函数,又称窗口函数,是现代数据库系统中一种强大的数据处理工具。它能够根据特定的数据窗口来进行聚合操作,如求和、平均值、最大值、...
本篇将详细讲解如何在Python中利用PostgreSQL和PostGIS进行WGS84与GCJ02坐标之间的转换。 首先,安装必要的Python库。对于与PostgreSQL交互,我们需要`psycopg2`库,处理地理数据则需`geopandas`和`shapely`。你...
本文将深入探讨如何在PostgreSQL中创建自定义函数,特别是在使用C语言编写动态库来实现这一功能时的简单示例。 首先,我们需要理解自定义函数在PostgreSQL中的作用。自定义函数允许用户根据特定需求扩展数据库的...
postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字。
字符串函数是用于执行字符串操作的函数,例如字符串连接、字符串长度、字符串转换、字符串小写、字符串替换和字符串抽取等。 PostgreSQL 的数据类型和数学函数提供了强大的功能,使得开发者可以轻松地执行各种数学...
在PostgreSQL数据库系统中,字符串操作函数是进行数据处理和查询时不可或缺的一部分。这些函数提供了对文本字符串的各种操作,如拼接、截取、查找、替换等,极大地丰富了SQL语句的功能。以下是对PostgreSQL字符串...
使用这个函数,你可以将包含全角字符的字符串传入,并得到转换后的半角字符串。在实际应用中,你可能需要根据实际的字符编码范围和项目需求进行调整。 总结一下,"pb全角转半角"是在PowerBuilder环境下进行的一种...
国外大牛写的一个mysql数据库转换postgresql的脚本。亲试可以无错误运行。