Oracle 生成拼音码

原创 2013年12月04日 16:11:29
CREATE OR REPLACE FUNCTION fgetpy (v_str VARCHAR2)  
   RETURN VARCHAR2  
AS  
   v_strlen   INT;  
   v_return   VARCHAR2 (500);  
   v_ii       INT;  
   v_n        INT;  
   v_c        VARCHAR2 (2);  
   v_chn      VARCHAR2 (2);  
   v_rc       VARCHAR2 (500);  
/*************************************************************************  
生成汉字拼音码的函数。 wallimn 2009-06-21   
**************************************************************************/  
BEGIN  
   --dbms_output.put_line(v_str);  
   v_rc := v_str;  
   v_strlen := LENGTH (v_rc);  
   v_return := '';  
   v_ii := 0;  
  
   WHILE v_ii < v_strlen  
   LOOP  
      v_ii := v_ii + 1;  
      v_n := 63;  
  
      SELECT SUBSTR (v_rc, v_ii, 1)  
        INTO v_chn  
        FROM DUAL;  
  
      SELECT v_n + MAX (rowsf)  
        INTO v_n  
        FROM (SELECT chn, ROWNUM rowsf  
                FROM (SELECT   chn  
                          FROM (SELECT '吖' chn  
                                  FROM DUAL  
                                UNION  
                                SELECT '八'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '嚓'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '咑'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '妸'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '发'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '旮'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '铪'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '丌'  
                                  FROM DUAL              --because have no 'i'  
                                UNION ALL  
                                SELECT '丌'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '咔'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '垃'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '嘸'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '拏'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '噢'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '妑'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '七'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '呥'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '仨'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '他'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '屲'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '屲'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '屲'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '夕'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '丫'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT '帀'  
                                  FROM DUAL  
                                UNION ALL  
                                SELECT v_chn  
                                  FROM DUAL) a  
                      ORDER BY NLSSORT (chn, 'NLS_SORT=SCHINESE_PINYIN_M')) c) b  
       WHERE chn = v_chn;  
  
      v_c := CHR (v_n);  
  
      IF CHR (v_n) = '@'  
      THEN                                                      --英文直接返回  
         v_c := v_chn;  
      END IF;  
  
      v_return := v_return || v_c;  
      v_return := lower(v_return);  
   END LOOP;  
  
   RETURN v_return;  
END fgetpy;  

oracle 提取中文字符串拼音首字母函数,拼音简码提取函数

从别的数据库里拿到的获取拼音简码的函数,觉得挺有意思的,具体的思路就是,通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母。具体实现效果和代码如下。...
  • Ezitai
  • Ezitai
  • 2017年03月31日 11:55
  • 1699

oracle 提取中文字符串拼音首字母函数,拼音简码提取函数

从别的数据库里拿到的获取拼音简码的函数,觉得挺有意思的,具体的思路就是,通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母。具体实现效果和代码如下。...
  • Ezitai
  • Ezitai
  • 2017年03月31日 11:55
  • 1699

java 汉字转换为拼音 简码 及全拼音

只需要一个pinyin4j-2.5.0 目前新版本 下载地址:http://pinyin4j.sourceforge.net/ import net.sourceforge.p...
  • kunkun378263
  • kunkun378263
  • 2014年08月11日 15:00
  • 1654

oracle 拼音码

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE ...
  • karali
  • karali
  • 2014年10月20日 11:28
  • 586

ORACLE函数获取汉字拼音首字母

ORACLE函数获取汉字拼音首字母 /*------增加:yl--*/ oracle 中 NLSSORT函数的用法 NLSSORT(),用来进行语言排序 拼音 SELECT * FR...
  • lixing732100721
  • lixing732100721
  • 2013年12月01日 22:10
  • 6129

Oracle中文转拼音函数

最近两个项目都提出从中文转拼音的需求。我以前的做法是:从微软拼音输入法导出字库,建立中文拼音对照表,然后写一个函数从对照表查拼音。这种方法虽然思路简单,但是返回拼音的错误率太高,而且对每个字都要去查一...
  • wzy0623
  • wzy0623
  • 2016年12月28日 15:16
  • 2766

Oracle中生成GUID类型

Oracle8i引入了SYS_GUID这个概念,它同Oracle管理员所使用的传统的序列(sequence)相比具有诸多优势。一个序列生成器只是简单地创建从给定的起点开始的一系列整数值,而且它被用在选...
  • jumtre
  • jumtre
  • 2014年10月31日 16:49
  • 2732

165.Oracle数据库SQL开发之 XML和ORACLE——从关系数据生成XML

165.Oracle数据库SQL开发之 XML和ORACLE——从关系数据生成XML 欢迎转载,转载请标明出处: ORACLE数据库包含很多SQL函数,使用这些函数可以生成XML。 1.  XMLE...
  • notbaron
  • notbaron
  • 2015年12月05日 14:57
  • 30909

初学者之ORACLE生成执行计划

1.Explain Plan For SQL 该方法不是SQL语句实际执行后所产生的执行计划,是根据统计信息估算的执行计划,信息来自plan_table。   SCOTT@orcl>explain p...
  • DreamLLOver
  • DreamLLOver
  • 2016年05月22日 14:46
  • 1076

Oracle 生成流水号 存储过程 订单编号

用存储过程生成流水号是很常用的,这里以生成订单编号的流水号作为示例。(新的一天的流水号从1开始,如:今天的订单编号是CD2013010900014,下一个订单编号将是CD2013010900015;明...
  • zhoutieVIP
  • zhoutieVIP
  • 2017年06月22日 21:04
  • 608
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 生成拼音码
举报原因:
原因补充:

(最多只允许输入30个字)