`

ORACLE函数实现按汉字拼音首字母查询

 
阅读更多

1、创建oracle存储过程(网上拿来的的) 

Sql代码  收藏代码
  1. CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL_H(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS  
  2. V_COMPARE VARCHAR2(100);  
  3. V_RETURN VARCHAR2(4000);  
  4. tmp  integer;  
  5. FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS  
  6. BEGIN  
  7. RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');  
  8. END;  
  9. BEGIN  
  10. V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, 1, 1));  
  11.   
  12. select length(SUBSTR(P_NAME, 1, 1)) - lengthb(SUBSTR(P_NAME, 1, 1)) into tmp from dual;  
  13.   
  14. IF tmp=0 then  
  15. V_RETURN :=   SUBSTR(P_NAME, 1, 1);  
  16. RETURN V_RETURN;  
  17. END IF;  
  18.   
  19. IF V_COMPARE >= F_NLSSORT(' 吖 'AND V_COMPARE <= F_NLSSORT('驁 'THEN  
  20. V_RETURN := V_RETURN || 'A';  
  21. ELSIF V_COMPARE >= F_NLSSORT('八 'AND V_COMPARE <= F_NLSSORT('簿 'THEN  
  22. V_RETURN := V_RETURN || 'B';  
  23. ELSIF V_COMPARE >= F_NLSSORT('嚓 'AND V_COMPARE <= F_NLSSORT('錯 'THEN  
  24. V_RETURN := V_RETURN || 'C';  
  25. ELSIF V_COMPARE >= F_NLSSORT('咑 'AND V_COMPARE <= F_NLSSORT('鵽 'THEN  
  26. V_RETURN := V_RETURN || 'D';  
  27. ELSIF V_COMPARE >= F_NLSSORT('妸 'AND V_COMPARE <= F_NLSSORT('樲 'THEN  
  28. V_RETURN := V_RETURN || 'E';  
  29. ELSIF V_COMPARE >= F_NLSSORT('发 'AND V_COMPARE <= F_NLSSORT('猤 'THEN  
  30. V_RETURN := V_RETURN || 'F';  
  31. ELSIF V_COMPARE >= F_NLSSORT('旮 'AND V_COMPARE <= F_NLSSORT('腂 'THEN  
  32. V_RETURN := V_RETURN || 'G';  
  33. ELSIF V_COMPARE >= F_NLSSORT('妎 'AND V_COMPARE <= F_NLSSORT('夻 'THEN  
  34. V_RETURN := V_RETURN || 'H';  
  35. ELSIF V_COMPARE >= F_NLSSORT('丌 'AND V_COMPARE <= F_NLSSORT('攈 'THEN  
  36. V_RETURN := V_RETURN || 'J';  
  37. ELSIF V_COMPARE >= F_NLSSORT('咔 'AND V_COMPARE <= F_NLSSORT('穒 'THEN  
  38. V_RETURN := V_RETURN || 'K';  
  39. ELSIF V_COMPARE >= F_NLSSORT('垃 'AND V_COMPARE <= F_NLSSORT('擽 'THEN  
  40. V_RETURN := V_RETURN || 'L';  
  41. ELSIF V_COMPARE >= F_NLSSORT('嘸 'AND V_COMPARE <= F_NLSSORT('椧 'THEN  
  42. V_RETURN := V_RETURN || 'M';  
  43. ELSIF V_COMPARE >= F_NLSSORT('拏 'AND V_COMPARE <= F_NLSSORT('瘧 'THEN  
  44. V_RETURN := V_RETURN || 'N';  
  45. ELSIF V_COMPARE >= F_NLSSORT('筽 'AND V_COMPARE <= F_NLSSORT('漚 'THEN  
  46. V_RETURN := V_RETURN || 'O';  
  47. ELSIF V_COMPARE >= F_NLSSORT('妑 'AND V_COMPARE <= F_NLSSORT('曝 'THEN  
  48. V_RETURN := V_RETURN || 'P';  
  49. ELSIF V_COMPARE >= F_NLSSORT('七 'AND V_COMPARE <= F_NLSSORT('裠 'THEN  
  50. V_RETURN := V_RETURN || 'Q';  
  51. ELSIF V_COMPARE >= F_NLSSORT('亽 'AND V_COMPARE <= F_NLSSORT('鶸 'THEN  
  52. V_RETURN := V_RETURN || 'R';  
  53. ELSIF V_COMPARE >= F_NLSSORT('仨 'AND V_COMPARE <= F_NLSSORT('蜶 'THEN  
  54. V_RETURN := V_RETURN || 'S';  
  55. ELSIF V_COMPARE >= F_NLSSORT('侤 'AND V_COMPARE <= F_NLSSORT('籜 'THEN  
  56. V_RETURN := V_RETURN || 'T';  
  57. ELSIF V_COMPARE >= F_NLSSORT('屲 'AND V_COMPARE <= F_NLSSORT('鶩 'THEN  
  58. V_RETURN := V_RETURN || 'W';  
  59. ELSIF V_COMPARE >= F_NLSSORT('夕 'AND V_COMPARE <= F_NLSSORT('鑂 'THEN  
  60. V_RETURN := V_RETURN || 'X';  
  61. ELSIF V_COMPARE >= F_NLSSORT('丫 'AND V_COMPARE <= F_NLSSORT('韻 'THEN  
  62. V_RETURN := V_RETURN || 'Y';  
  63. ELSIF V_COMPARE >= F_NLSSORT('帀 'AND V_COMPARE <= F_NLSSORT('咗 'THEN  
  64. V_RETURN := V_RETURN || 'Z';  
  65. END IF;  
  66.   
  67.   
  68.   
  69. RETURN V_RETURN;  
  70.   
  71.   
  72.   
  73. END;  



2、struts2 action 代码  在action里面写sql为了贪快。别在意。 

Java代码  收藏代码
  1. private String[] pyList=null;               //拼音数组  
  2. private String  pyStr =null;  //查询拼音字母  
  3.   
  4. public String execute(){   
  5.         /*岗位类别按拼音首字母查询*/  
  6. String pyzm="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";   
  7. pyList=pyzm.split(" ");  
  8. String jobtypeSql ="select jobtypename,jobtypecode from stjobtype where rownum <=100 order by hots desc";  
  9.         String areaSql = "select * from starea start with areacode='4406' connect by parentcode =   prior areacode";          
  10.         try {   
  11.             if (!CommonUtil.isNullOrEmpty(pyStr)) {  
  12.                 //1、调用f_trans_pinyin_capital_h oracle函数查询  
  13.                  jobtypeSql="select jobtypename,jobtypecode" +  
  14.                         " from stjobtype where f_trans_pinyin_capital_h(jobtypename)= '"+pyStr+"' order by hots desc";            
  15.       
  16.             }  
  17.             jobtypeList=stjobtypeService.getStjobtypeListBySQL(jobtypeSql);  
  18.             stareaList=stareaService.getStareaListBySQL(areaSql);   
  19.             String condition ="state = '0'";  
  20.   
  21.         } catch (DBException e) {   
  22.             e.printStackTrace();  
  23.             return "fail";  
  24.         }  
  25.           
  26.         return "success";  
  27.     }  



3、jsp里面代码 

Html代码  收藏代码
  1. <table class="table_border" cellpadding="1" cellspacing="0">  
  2.                 <tr>  
  3.                     <td colspan="5" align="left">  
  4.                         <img src="<%=basePath%>/images/moveright.gif" align="middle">  
  5.                         <b style="padding-left: 8px; padding-top: 10px;">岗位类别查询</b>  
  6.                     </td>  
  7.                 </tr>  
  8.                 <tr>  
  9.                     <td colspan="5" align="left">   
  10.                     <a href="jobsearch.action">  
  11.                             <b style="color:blue">热门岗位类别</b>  
  12.                             </a>  
  13.                         /<b style="padding-left: 8px; padding-top: 10px;">岗位类别首字母查询</b>  
  14.                         <s:iterator value="pyList" status="st">  
  15.                             <a href="jobsearch.action?pyStr=<s:property value="pyList[#st.index]" />">  
  16.                             <b style="color:blue"><s:property value="pyList[#st.index]" /></b>  
  17.                             </a> |  
  18.                         </s:iterator>                       
  19.                     </td>  
  20.                 </tr>  
  21.                    
  22.                 <s:iterator id="jobtype" value="#request.jobtypeList" status="st">  
  23.                     <s:if test="#st.index==0 || #st.index%5 ==0">  
  24.                         <tr>  
  25.                     </s:if>  
  26.                     <td>  
  27.                         <a  
  28.                             href="etjob!findEtjobList.action?jobtypecode=<s:property value='#jobtype.jobtypecode'/>">  
  29.                             <s:property value="#jobtype.jobtypename" /> </a>  
  30.                     </td>  
  31.                     <s:if test="#st.index==4 || #st.index%5 ==4">  
  32.                         </tr>  
  33.                     </s:if>  
  34.                 </s:iterator>  
  35.             </table>  


4、附两效果图: 
页面1:查询页面 
 
页面2:查询首拼为字母G的数据 

分享到:
评论

相关推荐

    MySQL函数实现获取汉字拼音首字母

    使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母

    oracle获取汉字拼音和拼音首字母的功能函数

    总的来说,Oracle中获取汉字拼音和拼音首字母涉及了字符编码、Java编程、自定义函数、第三方工具等多个方面。开发者可以根据具体的需求和环境,选择合适的方法来实现这一功能。在处理过程中,要注意字符集的兼容性、...

    Oracle查询取汉字拼音首字母

    Oracle查询取汉字拼音首字母Function

    oracle批量修改汉字转拼音首字母的函数

    在Oracle数据库环境中,批量修改汉字转拼音首字母的需求常常出现在数据处理、索引优化或特定查询场景中。这里我们将深入探讨如何实现这个功能,并提供相关的函数和方法。 首先,我们需要理解汉字转拼音首字母的基本...

    oracle拼音首字母查询

    Oracle拼音首字母查询是一种在Oracle数据库中实现对汉字进行拼音首字母检索的技术。在中文环境中,为了方便用户根据汉字的拼音首字母进行快速查找,这种查询方式尤其有用。Oracle数据库虽然原生支持英文字符集,但...

    oracle创建函数生成拼音码(汉字首字母)

    oracle创建函数生成拼音码(汉字首字母)

    oracle获取汉字拼音首字母

    在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将详细介绍如何在Oracle环境中实现这一...

    ORACLE中取汉字拼音首字母的存储过程

    本文将详细解析一个用于在Oracle中获取汉字拼音首字母的存储过程,该过程通过一系列精心设计的字符串转换逻辑实现。 ### 存储过程概述 存储过程名为`FUN_SPELLCODE`,它接受一个参数`PRM_SPELLIN`,类型为`VARCHAR...

    Oracle汉字拼音首字母函数

    ### Oracle汉字拼音首字母函数详解 #### 一、概述 在数据库处理中文数据时,有时候我们需要根据汉字转换成对应的拼音首字母来进行检索或排序。Oracle提供了多种方式来处理字符串,但针对汉字转拼音首字母的功能并...

    oracle提取汉字拼音和首字母

    这里提到的"oracle提取汉字拼音和首字母"可能是一个PL/SQL包,包含了一系列的函数,用于将汉字转换为对应的拼音和首字母。 1. **汉字转拼音** 汉字转拼音的过程通常涉及到文本解析和字符串操作。这个PL/SQL存储...

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...

    oracle生成拼音、五笔首字母的functions方法

    这两个脚本文件`oracle生成五笔首字母的functions方法.sql`和`oracle生成拼音首字母的functions方法.sql`应该包含了实现这些功能的自定义PL/SQL函数。在实际应用中,你可以将这些函数嵌入到你的查询或存储过程中,...

    Oracle获取汉字拼音和拼音首字母的功能函数

    本文将详细讲解如何在Oracle中实现获取汉字的拼音和拼音首字母的功能。 首先,我们要知道Oracle并不内置直接支持汉字转拼音的函数。但是,我们可以利用一些额外的资源,比如创建存储过程或者使用第三方的PL/SQL包来...

    Oracle 汉字转全拼 拼音首字母

    --此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。 create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2 as lv_spell varchar2...

    oracle_获取汉字拼音

    首先,`获取汉字拼音和拼音首字母的功能函数.pdf`可能是一个文档,详细介绍了如何创建和使用这类函数。通常,这样的函数会包含两个部分:一是将汉字转换为全拼,二是提取汉字的首字母。全拼转换是将每个汉字转化为其...

    sql 按拼音首字母排序

    本文将深入探讨如何利用SQL实现按拼音首字母进行排序的功能,这是一个对于处理中文数据尤其有用的技术点。通过解析提供的代码片段,我们将了解其工作原理、适用场景以及可能的优化方向。 ### SQL拼音排序功能概述 ...

    oracle汉字转拼音函数整理大全

    - `2`: 返回首字母大写的拼音,每个汉字拼音之间用空格分隔。 - `3`: 同上。 - `4`: 同上。 - 示例: - `fn_getpyKGJG('你好', 0)` 返回 `'ni hao'` - `fn_getpyKGJG('你好', 1)` 返回 `'NI HAO'` - `fn_...

    Oracle汉字转换成拼音,支持首字母或全拼

    Oracle中进行汉字转换成拼音,通过参数不同可以返回拼音首字母或全拼: --调用方式: SELECT f_getSpell('江西') from dual; --返回 'jx' --SELECT f_getSpell('江西',0) from dual; --返回 'jiangxi'

    取汉字拼音或首字母的PL/SQL存储过程

    -- 提取首字母,这里假设拼音首字母在ASCII码的前26个字母内 IF ascii BETWEEN 'A' AND 'Z' THEN first_char := ascii; ELSE first_char := 'X'; -- 对于非字母字符,可以设置为特定标记 END IF; output_char...

    汉字转全拼或首字母Oracle存储过程

    总结起来,"汉字转全拼或首字母Oracle存储过程"是一个利用PL/SQL实现的工具,它可以将汉字字符串转换为其全拼或首字母,这对于处理汉字数据和提升搜索效率具有重要意义。通过创建和使用这样的存储过程,我们可以灵活...

Global site tag (gtag.js) - Google Analytics