自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何用存儲(chǔ)過(guò)程實(shí)現(xiàn)拼音檢索任意字符

數(shù)據(jù)庫(kù) SQL Server
本文主要介紹了如何用存儲(chǔ)過(guò)程結(jié)合漢字字典表實(shí)現(xiàn)快速檢索的過(guò)程,希望能對(duì)您有所幫助。

首先我們介紹一下存儲(chǔ)過(guò)程的參數(shù),然后通過(guò)一個(gè)代碼實(shí)例來(lái)介紹這一過(guò)程的實(shí)現(xiàn)。接下來(lái)我們就開始學(xué)習(xí)吧。

1. 存儲(chǔ)過(guò)程

參數(shù)說(shuō)明:

  • v_string 輸入字符,支持任意字符
  • v_tablename 表名
  • v_fieldname 字段名
  • v_number 默認(rèn)顯示數(shù)量
  • outCursor 以游標(biāo)的形式返回結(jié)果集

該實(shí)例的實(shí)現(xiàn)代碼如下:

  1. create or replace procedure pro_pyquery(v_string In varchar2 default null,  
  2.  
  3. v_tablename In varchar2,v_fieldname in varchar2,v_number in number,  
  4.  
  5. outCursor out SYS_REFCURSOR)  
  6.  
  7. as  
  8.  
  9. lv_spell varchar2(2000);  
  10.  
  11. lv_temp string(32000);  
  12.  
  13. lv_char varchar2(100);  
  14.  
  15. --no_string exception;  
  16.  
  17. begin  
  18.  
  19. --if v_string is null then  
  20.  
  21. --raise no_string;  
  22.  
  23. --end if;  
  24.  
  25. lv_temp:='select distinct '||v_fieldname||' from '||v_tablename||' where ';  
  26.  
  27. for i In 1..length(v_string) loop  
  28.  
  29. lv_char:=substr(v_string,i,1);  
  30.  
  31. if upper(lv_char)='A' then  
  32.  
  33. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''A''))  
  34.  
  35. or (substr(lower('||v_fieldname||'),'||i||',1)=''a'')) and rownum<='||v_number;  
  36.  
  37. end if;  
  38.  
  39. if upper(lv_char)='B' then  
  40.  
  41. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''B''))  
  42.  
  43. or (substr(lower('||v_fieldname||'),'||i||',1)=''b'')) and rownum<='||v_number;  
  44.  
  45. end if;  
  46.  
  47. if upper(lv_char)='C' then  
  48.  
  49. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''C''))  
  50.  
  51. or (substr(lower('||v_fieldname||'),'||i||',1)=''c'')) and rownum<='||v_number;  
  52.  
  53. end if;  
  54.  
  55. if upper(lv_char)='D' then  
  56.  
  57. lv_spell:='  
  58.  
  59. ((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''D''))  
  60.  
  61. or (substr(lower('||v_fieldname||'),'||i||',1)=''d'')) and rownum<='||v_number;  
  62.  
  63. end if;  
  64.  
  65. if upper(lv_char)='E' then  
  66.  
  67. ( (substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''E''))  
  68.  
  69. or (substr(lower('||v_fieldname||'),'||i||',1)=''e'')) and rownum<='||v_number;  
  70.  
  71. end if;  
  72.  
  73. if upper(lv_char)='F' then  
  74.  
  75. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''F''))  
  76.  
  77. or (substr(lower('||v_fieldname||'),'||i||',1)=''f'')) and rownum<='||v_number;  
  78.  
  79. end if;  
  80.  
  81. if upper(lv_char)='G' then  
  82.  
  83. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''G''))  
  84.  
  85. or (substr(lower('||v_fieldname||'),'||i||',1)=''g'')) and rownum<='||v_number;  
  86.  
  87. end if;  
  88.  
  89. if upper(lv_char)='H' then  
  90.  
  91. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''H''))  
  92.  
  93. or (substr(lower('||v_fieldname||'),'||i||',1)=''h'')) and rownum<='||v_number;  
  94.  
  95. end if;  
  96.  
  97. if upper(lv_char)='I' then  
  98.  
  99. lv_spell:='(substr(lower('||v_fieldname||'),'||i||',1)=''i'') and rownum<='||v_number;  
  100.  
  101. end if;  
  102.  
  103. if upper(lv_char)='J' then  
  104.  
  105. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''J''))  
  106.  
  107. or (substr(lower('||v_fieldname||'),'||i||',1)=''j'')) and rownum<='||v_number;  
  108.  
  109. end if;  
  110.  
  111. if upper(lv_char)='K' then  
  112.  
  113. lv_spell:=' ((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''K''))  
  114.  
  115. or (substr(lower('||v_fieldname||'),'||i||',1)=''k'')) and rownum<='||v_number;  
  116.  
  117. end if;  
  118.  
  119. if upper(lv_char)='L' then  
  120.  
  121. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''L''))  
  122.  
  123. or (substr(lower('||v_fieldname||'),'||i||',1)=''l'')) and rownum<='||v_number;  
  124.  
  125. end if;  
  126.  
  127. if upper(lv_char)='M' then  
  128.  
  129. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''M''))  
  130.  
  131. or (substr(lower('||v_fieldname||'),'||i||',1)=''m'')) and rownum<='||v_number;  
  132.  
  133. end if;  
  134.  
  135. if upper(lv_char)='N' then  
  136.  
  137. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''N''))  
  138.  
  139. or (substr(lower('||v_fieldname||'),'||i||',1)=''n'')) and rownum<='||v_number;  
  140.  
  141. end if;  
  142.  
  143. if upper(lv_char)='O' then  
  144.  
  145. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''O''))  
  146.  
  147. or  
  148.  
  149. (substr(lower('||v_fieldname||'),'||i||',1)=''o''))  
  150.  
  151. and rownum<='||v_number;  
  152.  
  153. end if;  
  154.  
  155. if upper(lv_char)='P' then  
  156.  
  157. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''P''))  
  158.  
  159. or  
  160.  
  161. (substr(lower('||v_fieldname||'),'||i||',1)=''p''))  
  162.  
  163. and rownum<='||v_number;  
  164.  
  165. end if;  
  166.  
  167. if upper(lv_char)='Q' then  
  168.  
  169. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''Q''))  
  170.  
  171. or  
  172.  
  173. (substr(lower('||v_fieldname||'),'||i||',1)=''q''))  
  174.  
  175. and rownum<='||v_number;  
  176.  
  177. end if;  
  178.  
  179. if upper(lv_char)='R' then  
  180.  
  181. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''R''))  
  182.  
  183. or  
  184.  
  185. (substr(lower('||v_fieldname||'),'||i||',1)=''r''))  
  186.  
  187. and rownum<='||v_number;  
  188.  
  189. end if;  
  190.  
  191. if upper(lv_char)='S' then  
  192.  
  193. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''S''))  
  194.  
  195. or  
  196.  
  197. (substr(lower('||v_fieldname||'),'||i||',1)=''s''))  
  198.  
  199. and rownum<='||v_number;  
  200.  
  201. end if;  
  202.  
  203. if upper(lv_char)='T' then  
  204.  
  205. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''T''))  
  206.  
  207. or  
  208.  
  209. (substr(lower('||v_fieldname||'),'||i||',1)=''t''))  
  210.  
  211. and rownum<='||v_number;  
  212.  
  213. end if;  
  214.  
  215. if upper(lv_char)='U' then  
  216.  
  217. lv_spell:='(substr(lower('||v_fieldname||'),'||i||',1)=''u'') and rownum<='||v_number;  
  218.  
  219. end if;  
  220.  
  221. if upper(lv_char)='V' then  
  222.  
  223. --open outCursor for select * from dual where 1=2;  
  224.  
  225. lv_spell:='(substr(lower('||v_fieldname||'),'||i||',1)=''v'')  
  226.  
  227. and rownum<='||v_number;  
  228.  
  229. end if;  
  230.  
  231. if upper(lv_char)='W' then  
  232.  
  233. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''W''))  
  234.  
  235. or (substr(lower('||v_fieldname||'),'||i||',1)=''w'')) and rownum<='||v_number;  
  236.  
  237. end if;  
  238.  
  239. if upper(lv_char)='X' then  
  240.  
  241. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''X''))  
  242.  
  243. or (substr(lower('||v_fieldname||'),'||i||',1)=''x'')) and rownum<='||v_number;  
  244.  
  245. end if;  
  246.  
  247. if upper(lv_char)='Y' then  
  248.  
  249. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''Y''))  
  250.  
  251. or  
  252.  
  253. (substr(lower('||v_fieldname||'),'||i||',1)=''y''))  
  254.  
  255. and rownum<='||v_number;  
  256.  
  257. end if;  
  258.  
  259. if upper(lv_char)='Z' then  
  260.  
  261. lv_spell:='((substr('||v_fieldname||','||i||',1) in (select hzmc from hzzd where hzszm=''Z''))  
  262.  
  263. or (substr(lower('||v_fieldname||'),'||i||',1)=''z'')) and rownum<='||v_number;  
  264.  
  265. end if;  
  266.  
  267. if ascii(upper(lv_char))>90 or ascii(upper(lv_char))<65 then  
  268.  
  269. lv_spell:='substr('||v_fieldname||','||i||',1)='''||lv_char||''' and rownum<='||v_number;  
  270.  
  271. end if;  
  272.  
  273. lv_templv_temp:=lv_temp||lv_spell;  
  274.  
  275. if i<length(v_string) then  
  276.  
  277. lv_templv_temp:=lv_temp||' and ';  
  278.  
  279. end if;  
  280.  
  281. end loop;  
  282.  
  283. open outCursor for lv_temp;  
  284.  
  285. /*exception  
  286.  
  287. when no_string then  
  288.  
  289. --raise_application_error(-20001,'您未輸入任何字符');  
  290.  
  291. open outCursor for select * from dual where 1=2;  
  292.  
  293. rollback;*/  
  294.  
  295. exception  
  296.  
  297. when others then  
  298.  
  299. lv_spell:='select distinct '||v_fieldname||' from '||v_tablename||' where rownum<='||v_number;  
  300.  
  301. open outCursor for lv_spell;  
  302.  
  303. rollback;  
  304.  
  305. end; 

2.漢字字典表

如何用存儲(chǔ)過(guò)程實(shí)現(xiàn)拼音檢索任意字符

 本文就介紹到這里,希望通過(guò)上面的這個(gè)例子能夠給各位帶來(lái)一些收獲,謝謝大家!

【編輯推薦】

  1. Java和Ibatis調(diào)用存儲(chǔ)過(guò)程并取得返回值詳解
  2. 一個(gè)SQLite數(shù)據(jù)庫(kù)修改和刪除數(shù)據(jù)的代碼實(shí)例
  3. 查詢數(shù)據(jù)量大時(shí),關(guān)聯(lián)表查詢與循環(huán)查詢哪個(gè)更好
  4. 一個(gè)SQLite數(shù)據(jù)庫(kù)的ORDER BY和GROUP BY代碼實(shí)例
  5. 利用PL/SQLDeveloper將CSV數(shù)據(jù)導(dǎo)入ORACLE對(duì)應(yīng)表中
責(zé)任編輯:趙鵬 來(lái)源: CSDN博客
相關(guān)推薦

2010-04-16 11:03:02

Oracle存儲(chǔ)過(guò)程

2010-09-09 10:32:24

SQL函數(shù)拼音

2010-09-03 15:08:03

SQLselect語(yǔ)句

2010-06-18 10:34:38

SQL Server

2011-03-15 09:10:47

iptablesNAT

2021-11-29 08:50:57

Javascript存儲(chǔ)函數(shù)

2011-04-15 10:56:22

2024-02-26 08:05:00

Pythonpypinyin開發(fā)

2010-11-29 09:12:46

sybase分頁(yè)存儲(chǔ)過(guò)

2023-09-27 09:39:08

Java優(yōu)化

2009-09-17 10:27:55

linq存儲(chǔ)過(guò)程

2010-04-29 17:31:56

Oracle存儲(chǔ)過(guò)程

2011-08-11 14:35:47

SQL Server插入更新

2011-03-15 14:26:23

iptablesNAT

2010-11-26 13:27:41

MySQL存儲(chǔ)過(guò)程

2011-09-02 09:51:21

2011-05-16 13:15:55

MySQL存儲(chǔ)字符集

2010-09-14 10:36:23

sql server存

2022-12-13 08:39:53

Kafka存儲(chǔ)檢索

2010-10-29 16:17:55

Oracle存儲(chǔ)過(guò)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)