Oracle函数中文转拼音(首字母)
CREATE OR REPLACE FUNCTION FUN_GET_PYCODE(p_str IN VARCHAR2,
p_flag NUMBER DEFAULT NULL)
RETURN VARCHAR2 AS
v_compare VARCHAR2(4);
v_return VARCHAR2(4000);
v_length INT := 0;
v_substr VARCHAR2(4); FUNCTION fn_nlssort(p_word IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN SUBSTR(NLSSORT(p_word, 'nls_sort=schinese_pinyin_m'), 1, 4);
END fn_nlssort;
BEGIN
IF p_str IS NULL THEN
RETURN '';
END IF; v_length := LENGTH(p_str); CASE p_flag
WHEN 1 THEN
--首字母小写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
WHEN 2 THEN
--首字母大写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'A';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'B';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'C';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'D';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'E';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'F';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'G';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'H';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'I';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'J';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'K';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'L';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'M';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'N';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'O';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'P';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'Q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'R';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 'S';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 'T';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'W';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'X';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'Y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'Z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
ELSE
--首字母小写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
END CASE;
RETURN v_return;
END FUN_GET_PYCODE;
Oracle函数中文转拼音(首字母)的更多相关文章
- Oracle提取中文字符串拼音首字母函数
通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...
- php 获取中文字符拼音首字母
//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{}); }); ...
- php获取中文字符拼音首字母
//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){ return ''; } $fchar = ord($str{0}) ...
- js 获取中文的拼音首字母
es6 + 模块化封装 "use strict"; module.exports = { //参数,中文字符串 //返回值:拼音首字母串数组 makePy (str) { if ( ...
- C#&Sql获取中文字符拼音首字母的方法
C#获取字符拼音首字母,可以存储在数据库中以备将来按字母搜索的需求. public static string GetAc(string s) { try { string temp = Servic ...
- php 中文转拼音首字母问题
<?php /* 中文汉字转拼音首字母的PHP简易实现方法. 要求: 只能是GB2312码表里面中文字符 转换得到字符串对应的拼音首字母大写. 用法: echo zh2py::conv('Chi ...
- mysql 中将汉字(中文)按照拼音首字母排序
因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY ...
- Oracle的汉字转拼音首字母的函数
CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); ...
- javascript 实现中文按照拼音首字母排序
js提供了sort()方法来对数组内的数据进行排序,但是只是对英文有作用,这个时候需要自定义排序的规则 ['张三','李四','王五'].sort((a, b) => a.localeCompa ...
随机推荐
- 转!!Linux 里的 2>&1 究竟是什么
原博文地址:https://blog.csdn.net/shunzi1046/article/details/76110963 我们在Linux下经常会碰到nohup command>/dev/ ...
- 微信小程序登录时序图
https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html
- dict文档
文档 class dict(object): """ dict() -> new empty dictionary 创建字典的方式有两种: 1.dic = {} 2 ...
- python 字符串的格式化
python字符串的格式化分为两种:1)% 方式 2)str.format() 方式. str.format() 是比 % 较新的方式, 大多数的 Python 代码仍然使用 % 操作符.但最 ...
- 搭建高性能Jboss负载均衡集群
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/a1314517love/article/details/26836357 负载均衡集群是由两台或者两 ...
- Spark2.x AFTSurvivalRegression算法
Spark2.0的机器学习算法比之前的改变最大的是2.0基本采用了dataframe来实现的,但之前的都是用的RDD,看官网说貌似在3.0的时候RDD就不用了!还有一个就是hiveContext和sq ...
- 记录:正确率、召回率、F值
因为不理解召回率,所以去查看了一些资料.特此记录一下自己的理解,以便以后查看. 说明 正确率=查出来正确的样本数/全部查出来的样本数 (也可以理解为查准率) 召回率=查出来正确的样本数/数据集里全部正 ...
- 以About Us为范例在Zen cart中增加页面
1.在includes\languages\english\html_includes目录中新建文件define_about_us.php 2.在includes\templates\Your_tem ...
- win8.1 设置默认输入法为英文
win8.1中文版 输入法默认为微软拼音且为中文,此事在使用类似cmd就很不方便了,这里我们只需要将输入法设置为 “允许我为每个应用窗口设置不同的输入法”即可,操作如下:
- The 15th UESTC Programming Contest Preliminary D - Destr0y City cdoj1558
地址:http://acm.uestc.edu.cn/#/problem/show/1558 题目: D - Destr0y City Time Limit: 3000/1000MS (Java/Ot ...