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函数获取汉字拼音首字母 /*------增加:yl--*/ oracle 中 NLSSORT函数的用法 NLSSORT(),用来进行语言排序 拼音 SELECT * FR...

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

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

ORACLE获取中文字符串拼音首字母

CREATE OR REPLACE FUNCTION PUB_GET_PY(p_汉字 CHAR DEFAULT '%')        RETURN CHAR IS /*************...

Oracle中文转拼音函数

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

【叶子函数分享五十四】汉字转拼音函数

/* -------------------------------------------------------------  函数: fn_GetPinyin  描述: 汉字转拼音(无数据表版)...

oracle 拼音码

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE ...

oracle拼音码

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPAR...

拼音码生成

  • 2006-02-23 09:05
  • 20KB
  • 下载

拼音码生成控件

  • 2015-12-02 11:37
  • 36KB
  • 下载

C#实现汉字自动转拼音码

/// /// 生成拼音简码 /// /// Unicode编码字符串 /// 拼音...
  • z0582
  • z0582
  • 2012-08-08 15:23
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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