当前位置: 首页 > news >正文

PostgreSQL汉字转拼音首字母

PostgreSQL汉字转拼音首字母,最近有个需求要做搜索优化,要求提取汉字首字母识别输入,图方便直接数据库用函数批量转换了,整理了网上的两个方法函数备忘,非原创。

https://blog.qdac.cc/?p=1281
https://developer.aliyun.com/article/228252

题外话,Java方案可以引入pinyin4j直接使用蛮方便,hutool也封装了拼音解决方案,通过SPI机制引入具体实现,maven坐标如下:

https://pinyin4j.sourceforge.net/

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.15</version>
</dependency><!--汉字转拼音方案实现-->
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version>
</dependency>

演示效果

SELECT pinyin_first_cap('hello WORLD,你好,世界,@饕餮1996');HELLOWORLDNHSJTT1996SELECT pinyin_first_char('hello WORLD,你好,世界,@饕餮1996');HELLO WORLD,NH,SJ,@饕餮1996

方案1(字符集全,推荐)

CREATE OR REPLACE FUNCTION "public"."bytea_to_int"("data" bytea)RETURNS "pg_catalog"."int4" AS $BODY$
declarenLen int;i int;v int = 0;t int = 0;
beginnLen = length(data);for i in 0..nLen-1 loopt = get_byte(data,i);t = t * power(256,(nLen-1-i));v = v + t;end loop;return v;
end;
$BODY$LANGUAGE plpgsql VOLATILECOST 100
CREATE OR REPLACE FUNCTION "public"."pinyin_first_cap"("v_str" varchar)RETURNS "pg_catalog"."varchar" AS $BODY$
DECLAREpos        INT4;hzlen      INT4;hz         VARCHAR (10);hzbm       INT4;hzpy       VARCHAR (10);py         VARCHAR (4000);hasspace   INT4;-- 相比pinyin_first_char()字符集要全,推荐使用-- hz 汉字;-- 下方不是乱码,是汉字编码首拼音对照表,不要删改任何字符,每个编码区3500个字符。hzpybm_0   CONSTANT VARCHAR (3500) = '                                                                                                                                                                                                                                                                                                                                KSXMMCSDQLYBJJJGCZBJFYYSJHYHCHZGJHHDSNKKTMOCXYPSNQSECCZGQLLYJMS YSSGYQYDYXJYYDLDWJJWBBFJEXTHGBCCCRFCQWYFCWDZPYDDWYXJAJPDFTCYCQXXCXNNXXZQBPZSYZHMZBQBZCYZBXQSBHHXGFMBHHGQCXSTGLYGYMXALELCCXZRCSD                                                                 TNJJCZZHLJSTSTBNXTYXXGKWYFLHJQSPXFXXDCZLSHXJBCFYBYXHCZBJYCLWLCZ GTSMTCXPQGLSJFZZLSLHDZBWJNCJYSNYCQRZCWYBTYFTWECSKDCBXHYZCYYXZCFBZMJYXXCDCZTBZJWSZSXYRNYJMDTHJXSQJCCSBXRYTSYFBJZGCLYZZPSCYZQSCJH                                                                 ZQYDXLBPJLLMQXTYDZSQJTZPLCGQDCWJBHCTDJFXYELBGXXMYJJQFZASYJNCYDK JCJSZCBATCCLNJQMWNQNCLLKBYBZZSYHQCLTWLCCRSHLLZNTYLNZXDDTCEEJYSSQGHSDBGHWNLYHTPJYMRYMCJGJMZGXYKYSSMZKLFXMTGYPFMQJSMTGJQDGYALCMZC                                                                 SDJLXDFFJCZFMNFFKGPKHRCJQCJDWJLFQDMLZBJJSCGCKDEJCJDLZYCKCCCLFCQ CZGBDQDJJYHDZWGSJDKCCCTLLPSKGHZZLJLGJGJJTJJJZCZMLZYJKXZYZMLJKYWXMKJLKJGMCLYKJQLBCKMDXWYXWSLLPSJJJQXYQFJTJDMXXLLCRQYJBMXGGYPJTGE                                                                 GDJGNJYJKHQFQZKHYGHDKLLSDJJXKYQXNZSXWWXDJSGXXJYQSCXQWJEXSWZHYDZ PAQYZMTSTZFCYLDJAGYLCQLYYYGLRQKLDZCCCADSGBRLZJSJWRCGQCDHMMXZDYOHYCQJBEHWNXDHGJLGWQWJHCSTHESJPWMRDSZTXYQPZXYXDQXTPBFYHHDWZBTXHQE                                                                 EDZSXKHTEXWLTXYDNXPHYLPMZHXLBLBMLSFHCYGGBHYJTDWLQCZYDQDQMGDKLLS ZWJQEQAJNYTLXAGZDHCQZWWSGQQDWZBCHYQZLXQGZGLYDQTJTADYZZCWHZYMHYHHJZWSXHDYLYSCQYDPCYWYPXJZHTYHQSYGXMCHRWJBWXZLWJSCSGNQBALZZMTJCJK                                                                 TSAXLXHHGOXZCPDMHGTYSJXHMRLXJKXHFQCTDXEZFCHZCCDJTXQHLXHYXNSYYDZ ZNYXJYAYKYPDXDDXPYZNDLTHHYDXZJJCXMTLHBYNYHMHZLLXNMYLLLPDCPPXMXDKYCYDLTXCHHZNXZLCCLYLZSXZJYZLNRLHYNTKYJPYCHEGWTGQRGTGYHHLGCWYQKP                                                                 YYYTTTTLHYLLYTTPLKYYQQZDQXSNMJZXYQMRTFBJDJJDJPTQZGTJYFLQGXFLZFH ZADPMJHLCCYHDZFGYDGCYXSBHDKDHAXXBPBYYHXCCBDQYJXDLJQZLHBJYDYQSQWJLZKCDTCCBXDYZZQJNKKNJGYEGLFYKASNTCHBLGZBYMJREGZYHEYBJMCTYFZJJFG                                                                 CJPLJHDWXXJKYYKSSMWCTQZLPBZDTWZXZAGYXWXLHLCPBCLLOQMMZSLBQZZKDCZ XGQJDCYTZQWZQSSFPKTFQDZDSDDTDWFHTDYZJAQQKYPDJYXTLJHDRQXXXAYDRJLKLYTWHLLRLLCXYLBWSZYMZZHKHXKSMDSYGJFZBSQLCXXNXYMDQOGQMMCCGGTTYBH                                                                 YJBEDPJXDQHKSBHFDXBAWHWAJLDYJSFHBLDDQJNCXFJHDFJHWZPKZYFCYZYNXFF WDBZZNYTXZEMBSEHXFZMBFLZRSYGZJRDJGXHJGJJNZZXHGJKYMLPEYYSSGQSHXSCXMFWKCCTXNYPNZHZPTMWYWXYYSLJZQXZDLAELMCPJCLXSQHFWWTFFTNQJJQDXHW                                                                 LYZCFLAHYYJLDXHHDYNRJTYWDRMDRQHWQCMFJDYZHMAYXJWZQTXDLMRSPWWCHJB XTGCYYRRLMPAMKQZYJRMYSNTPLNBPYYXMYKYNGJZZHLZHHANMPGWQTZMXXMLLHGDZXYHXKRYCJMFFXYHJFSSQLHXNDYCANNMTCJCYPRRNYTYQYMKSXNDLYLYLJNLXYS                                                                 XHMLLYZLJZXSTYZSMCQYNZLXBNNYLRQTRYYJZZHSYTSCQGXZBCHMKCZYQHZJNBH QSNJNZYBKNJQHSNSWXKHJYYBQCBFLDPZFKJZXSDDJEESSMLXXHWLMWWWYDKZGGTGGXBJTDSZXNXUMLPTFXLCXJJLJSXNWXLAHHHRWHSCYYBYAWJEFWQQJZZYJGXPLTJ                                                                 FTPAKQPTLDPCXTXBHKLEFDLEEGQYMSAWHMLFTWYQLYJEXBQFNLYXRDSCTGGXYWL KXQCTLHJLMKKZGYGLLLDZYDHZWPJZJDYZZHYYFQYTYZS';hzpybm_1   CONSTANT VARCHAR (3500) ='EZKLYMHJHTWYZLKYYWZCSKQQTCXWCDRJKLWKBDQYNCSRSZJLKYDCDTLZZACQQWZDDXYPLXCBQJYLZLLQTZJ                                                                 JYJYJZYXNYYYNXJXKGDAZWRDLJYYYRJLGLLYXJCYKYNQCCLDDNYYYKYKHJCLKPP QZZYJXJPFZDNFPZHDDMFMYYPQJRSSQZSQDGPZJWDSQZHZZWYBPDGPTMJTHZSBGZMBJCZHBBZMQCFMBCMCJXLJBGJTZGMQDYBJZYCTYZTZXTGKMYBBCLJSSQYMSCXFJE                                                                 GLSSZBQJJLYDLYCTSXMCWFGKKBQLLLJYXTYLTXDPHNHFJYZYESESDHWTJBSJTFD CZYQSXJDZJQPBSDJGFBKJBXDGQHMGWJJLHHYYYHHWYYCDYPCZTJZWDLFWXWCZJCCCUJZCZLXJJSJBFWPXZPTDZBZCJHMLXBQLRDGRGYSXFYMMWJXJWCYQCTTQHXKXKJ                                                                 YBMPKBNTHCYDTYFXBYXCBHXBSXTYMKSXLHKMZXTDHGXXSHQHCYXGLCSQYPDHQMY YPYYTJZLHQTBQXMYHCWLLCYLNEWCDCMLGGQKTLXKGNDGZYJJLYHQTTNCHXESZJYDNYDCQCBMZTBXWGWBXHMYQDYCMKKAQYNCSYQGYSQYSHJGJCNXKZYCXSBKXHYYLCT                                                                 YXTYMGCPMGCCCCCMZTASGQZJLOSQYLSTMQSQDZLJQQYPLCYCZTCQQPBQJCLPKHC YYXXDTDDSJCXFFLLXMLWCJCXTSPYXNDTJSJWXQQJCKYYLSJHAYGXCYYDMAMDQMLMCZNYYBZKKYFLMCHCLHXRCJJHSLNMTJGGYGJDDZJZKZQGJYYXZXXQHHESTMDSYYY                                                                 QLFRZZDYYHSCTGWDRXQJYBXZZDYKBJWHYQDZYWNPPBAZYBZNBYZZYHNYCPJMQZJ ZPNQTBDJKQQHNGCYXCHBZKDDNZGJDRLZLDJLJYXYTBGTCSKMNJBJSNXCPJJHTPZSYJWBZYZLSTBWWQSMMFDWJYZCTBRZWQCSLQGDHQSQLYZLGNHSZCBTZKPJMJMSPNJ                                                                 ZJJYNHPWSNSZZXHBYHYZXKJTLLCJTHGCXXQCBYWBWZGGQRQCSSRBKYDZNLQXJME CSTJPLTHZWHWQTZENQZWSGSSCSJCCGFDQSLCCGLLZGHZQTHZJGYAZNMCKCSTJCKBJYGQJPLDXRGZYXCNHHDNLZHJJCDDBCJXBFZWPQDHJTQZJYNLZZPCJDSQJKDXQAJ                                                                 YEMMJTDLJYRYYNHJBNGZZKMJXLTBSLLRTYLCSZNXJLLHYLLQQQLXYMCWCXSLJMC ZLTLDWDJLLGGQXKYGBPDKMWHCCGXJCSDYBXDNDDYKYQTXDYXMAADCSLQXYJSJZYLBLXXXQQJZLBYLWSJJYJTDYQQZZZZQLZCDZCHPLMQPLFFJZYSJEZFPFZKSYJJHXT                                                                 TDXCYSMMTCWBBJSHFGXFQHYZFSJYBXPZLHMBXHZSFDWDABALKTSHXKXJJZTHGXH JXKZXSZZWHWTZZZSNXQZYAWLCWXFGYYHXMYYSWQMNJYCYSPJKHWCQHYLJMZXHMCNZHHXCLTJPLXYJHDYYLTTXFSZHYXXSJBJYAYRMLCKDUYHLRLLLSTYZYYHSCSZCXH                                                                 YQFBFLFUNTLJMHTJYZWTLLLPSTRBDDLQJBCCRQYWXFZRTDMCYGGYJMWJMSYFDXC SHXNCSWJJMPAFYFNHYDXYEZYHSDLSZXSXGBMYYYSNBYNLHPFZDCYFMSSSNYZZDGBAFBDBSSZBSGCYJLMLRZSYXQCYXZLSKBRBRBZCYCJZEEYFGZLYZSFRYKQSXDCYZU                                                                 YJLZXSCBTGJBBRXLLFQWJGSQYLPZDXTZABDHZRBJHWNJTJXLKCFSSDQYJKZCWJL BXFTZLLZLQBLCQQCCDFPBHCZLYYGJDGWQFCZQYYYQYRQZFLZZFCQNWLHJCJJCZQYBZZBPDCCMHJGXDGDZQMFGPSYSDFWWJZJYXYYJYHWPBYGXRYLYBHKJKSFTJMMKHT                                                                 YYSXYZPDJYSYWMDJJRHLQXSTWSCBJYZFNMGJTYSYZMSJYJHGQMYRSZWTRTZSSKX GQGSPTGCDNJGQQMXGZTQYDJZDLSXJLHRQGGGTHSCPYJHHGNYGKGGMDZLLCCLXQSTGZSLLLMLCSKBLJZZSMNYTPZSQJCJYXEXZZCPSHGZSXCDFMWRLLQXRFZLYSTCTMS                                                                 JTHJNTNRTZFQRHQGLLGXSCZJDJXCTSJLNYHSZXCGJZYPFHDJSPCCZGJJJZJQDYB SSLYCTMQTBHJQNNYGJYNQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYLFZSLJCQZLYLZCJESHNYLLQXGJXLYJYYYXNBCLJSSWCQQCJYLLCLDQELLZLLBNYLGYQXCCQKYJ                                                                 XXHKLKSEXCQKKKCGYYXYWTJOHTHXPXXXSLCYEYCHBBJQZSCSZSSLZYLGDZMMYSX JQQSQYFYCHDZYWCTJSYCJKCDDJLBDJJZQYSKKXXHQJOHDYXGMAJPCUUBLJSMTXERXJQDUPJDBSMSSTHTSLMMTRZSZMLDJQYNNSQXQYDYYZBDSLNFGBZMDZCWFTTMQPQ                                                                 WWTJZZQJJRJHTBGZFJHNXXYY';hzpybm_2   CONSTANT VARCHAR (3500) = 'DYHHNMMCHBZPZZPZFMZTLMYFTSKJJYJZHBZCYGH PCZSCSJYSJFJGDYPSHZCWHJSEXFSZYWKLAYSLYMQPXXSKQJPXZGMWQYJSPCJLQWHMYBDHYYLHLGLCFYTLJCJSCPXSKPHJNTXTETLSSLSDYHXSCZKWTDWJSLHTQDJGGY                                                                 ZPHCQFZLJLZPTYNLMJLLQYNBHYLQQZYBBYWRFYKJSSYPXYRHJNQTFWTWRCHYHMM YYHSMZHNGCELQQMTCWCHPXJJFYYSJZTYBMSTSYJDTQQTLHYNBYQZLCXCNZMYLFLWBYHJYSYLYMZCTDWGSZSLMWZWWQZSAYYSSSAPCWCMGHHQDZXJGSJHYZLCYYXHBBZ                                                                 JKSSMALHYCFYGMQYJYCXJLLJGCZGQJCCTOTYXMTSHLWCGFZKPZCXHJYSLCTJCYH XSGZKXZPYJPDHJWPJWSQXXXDMRSZCYZWTXKYTSHBCSPLWSSCJHJLCJHYLHFHHXJSXALNYLMDHZXYSXLWZYKCLDYHZMGYSPJTQZNGJFSJHCTSDSZLMSSMNYYMJQJCWTY                                                                 YDCHQLJAWBGQYBKFCMJWLZLLYYLSZYDWHXPSBCMLJSCGBHXLQRLJXYSWHXZLLDF HLSLYMJLJYLYJCDRJLFSYZFSLLCQYQFJYYSZLYLMSTDJCYHZLLNWLXXYGYYGXXHHZZXCZQZFNWPYPKPYPMLGXGGBDXZZKZFBXXLZPTYTSWHZJXHQHXXXYWZYSWTMZKX                                                                 XZPHGCHCULFJXPTZTHLYXCRHXSHXKJXXZQDXJULYJLKHTXCWHCFWZFPQRXQXYJY GPXGSCSXNGQCHKZXHFLXJBYZWTSXNNCYJJMWYJQRHFQSYLJZGYNSHGTCEBHXXWYHHXYXSQYMLYWGYQBBCLJLPSYTJZHYZWLHORJKCZJXXYXCHCYTYXQJDDSJFSYLTSF                                                                 XLMTYJMZUYYXLTCXQZLHZLWYXZHTNLXHXJCDYHLBRLMRLLAXKSLLLJLYXXLYCRY LCCGQCMTLZLLYZZPCWHJYZECKZDQYQPCJCYZBBBCYDCNJTRMFGYGBSYKMDQQZMKQLPGZBQCJFKJCXBLJMSWMDTQXLDLBPBXCWKCQJCZGKPHYYHZKZMPJYSTLPNYYXDB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ';hzpybm_3   CONSTANT VARCHAR (3500) = '                                                                                                                                                                                                                                                                                                                            KXHHZJXSTTLMXXBZYSHJPFXBQBYLJQKYZZZYLCZGFWYCTYXJBYYSBMSMHDYSHQY ZCHMJMCAHCFBBHPLXTYSXSDJGJDHKXXNB                                                                                                                                                               HNMLNGSLTXMRNLXQJMZLSQGLBHDCGYQYCHWFJYBBYJMJJDPQYAPFXCGJSCRSSYZ LBZJJJLGXZYXYXSQYXBXXGCXPLDYWECDW                                                                                                                                                               WCJMBTXCHXYXXFXLLJSFWDPZCMYLMSWTSBCECBLGDBQZQFJDJHYMCXTXDRMJWRH XCJZCLQDYHLSRSYWWZJYMTLLLTQCJZBTC                                                                                                                                                               KZCYQJZQALMYYZWDXZXQDLLQSGJFJLJHJAZDJGTHHSSTCYJLBSZLXJXRWGLDLZR LZQTGSLLLLLYMXQGDZHBBZLSXQBPFDFMW                                                                                                                                                               HYBJCCLDWZPBZLCYQXLDOZLWDWYYTHCQSCCRSSLBYFPTZMBMXLMYFGJFTMDJWDN MMCTGBDZLFYHSSMJYLDHDZJCCTLCLDLJC                                                                                                                                                               PDDJDSZNBGZXXCJQYCBZXZFZFGSNTTJWHTZMJXTMXSPDSYBZGMMJTACBMDKYCSZ ZYFYCTGWHKYJXGYCHYDZSCYZSSDLLQFLQ                                                                                                                                                               LLXFDYHXGGNYWYLLSDLLBJCYJZMLHLJXYYYTDLLLBUBFFQJZMPCLMJPGEHBCQAX HHHZCHXYHJAXHLPHJGPQQZGJJZZGZDQYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB                                                                 DHHBWYFFQDLZLJXJPALXZDAGLGMQYXXXFMMSYPFMXSYZYSHDZKJSMMZZSDNZCBP LTDDNMXZYMZMMQHHCCJEMXXKSTGWLSQLZBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB                                                                 LLSJBHLYZYHMXXHHZCJMHXTXFWGMWKDCQMFZZYDKMSCLCMGWRXPSLCXYXWGJYAH JZWCSNXYHMMPMLKXMHLMLGMXTKZJYSZJSBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                                 HYZJZYBDQZWZKGDJLFMEKZJPEZSWJMJYKTEMZNPLPLBPYKKQZKEQLWAKYPLHQWQ CKQCLHYXXMLYCCYSKYZHLCNSZKYZKCQZQCCCCCCCCCCCCCCZCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                                 LJBMJHQLYWQLNRYDTYKWSZDXDTNTQDFQQMGSELSTHPKTXXLWYDLZYZCQAPLLKCC YLBQQCZCLJSLZJXDDPJQDLJXZQJYZHKZLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDD                                                                 JCYQDYPPYPEAKJYRPCBYMXKLLZLLFQPYLLLMSGJCYRYTMXYZBDZRYSYZTFMSMCL YWZGXZGGSJSGKDTGGZLLDZBCHYYZHZYXXDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD                                                                 STYMSDBZYJGTSMTFXQYJSSDGSLNMDLYTZLRXTRZCYXNQFHYZJZYKBPNLYPBLNZD JHTSHHYZZRDZNFGXSKGJTTYLLGZZBJZKLDDDDDDDDDDDDDDD';hzpybm_4   CONSTANT VARCHAR (3500) = 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEE                                                                 PBZYLUYXBJFPNJZZXCDXZYXZGGRSRJKCMZJLSJYWQKYHQJXPJZTZLSNSHRNYPJT WCHKLBSZLCWYSJYLYBBWZJDWWCYXCKDZHEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF                                                                 SGZWWYQYYTCTDJLXWKCCKKCCLZCQQDZLQCSFQCHQHSFMQZLLBBSHJDYSJQPLZCD CWJKJLPCMZWJSQYZYHCPYDSDZNGQMBCFLFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG                                                                 NFFGFSMTQMLGQCYYBKJSRJHZLDCFTLLJGJHTXZCSZZTCGGKYOXPLZPBGTGYJZCZ SZLLJFZGQJCCZPXBSXPXHSYCLWDSJJXMFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGH                                                                 CFZHQQMQGYYHTYCRZNQXGPDZCSZQLJBHBZCYCZPPYTZSGYHCKPZJLCNSCSSLZXB MSDLDFJMKDJSLXLSZQPQPGJLLYDSZGQLSHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH                                                                 LKYYHZTTNCYQTZZFSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYFSZSNHNCZQZBBWSK RBCYZMTHGJYZCSHTCLZBLEQHXFLYLJQBZHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHJJJJJJJJ                                                                 GHSTBMZJLXFNBGXJZTSFJMSSNXLKBHSZXTNLZDNTLSJGZJGJCZXYHYHWRWQNZTN FJSCPZSHZJFYRDJFCJZHFZQCHZXFXSBZQJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ                                                                 LZSGYFTZDCSZXZJBQMSZKJRHXJZCGBJKHCHGTXKJQGLXBXFGTRTYLXJGDTSJXHJ JJCMZLCQSBTXHQGXTXXHXFTSDKFJHZYJFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ                                                                 JXRZLDLLJCQSQZJWQXSWTWGWBZCGCLLQZBCLMQJTZGZXZXLJFRMYZFLXYSZXXJK XRMJDCDMMYXBSQBHGZMWFWXGMXLZBGYTGJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ                                                                 ZYCCDXYZXSWGSYJYZNBGPZJCQSYXCXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMP LXZJSSLBYSMQSXJZXRXSQZZZSSLJFLCZJJJJJJKKQKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK                                                                 RCRXHHZXQWDSHXSJJHQCXJBDYNSYSRJBQLPXZPYMLXZKYXLXCJLCYCXXZZLLLLL HRZZDXYTYXCXFFQBPXZGYGZTCQWYLTLWWKKKKKKKKKKKLLLLXLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL                                                                 RSGZJMMGTJFSGZYAFSMLBFCWBJCLJMZLPJJLMDYLYFBYGQZMYZYRQQHXYYQQYGY FSFSLNQHCFHCCFXBLPLZQXXXKHHXSHJDSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL                                                                 CXCZWHHHPLHALPQAHXDLGGGDREDTPSQJJCLJZLJLHYHYQYDHZUZCZYWTEYTXHSL JBDGWXPCXNTJCKLLWKLLCSSTKNZDNQNTTLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMWMMM                                                                 LZSSZYQKCGBHCRRYCQBPPYRWQPXXKDFBBQTZFZNPZFXMQQCYPCXEHZGZTCMXXMX NWWXJRHLSTMCSJTJCXXTCNDNPGLZCJLSBMMMMMMMMMMMMMMMMMMMYMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                                                                 LPGJCDNNRSZJDPGWMRZCLODANSYZ';hzpybm_5   CONSTANT VARCHAR (3500) = 'RTWJJDBCQWSTSZYLJPXLOCLGPCJFZLJYLXC TNLCKXTFZJHCRXSFZDKNJCJLLTQCBXNWZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN                                                                 XBXKLYLHZLQZLNZQWGLGJJGCMNGJDZXTXCXYXJJXSJTSTPPGHTXDFPTFCLLXQPK FZFLYLUBNJHKBMDDBCYCLDXYDDQLYJJHQNNNNNNNNNNNNNNNNNNNNNOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP                                                                 LLCSJPYYCLDTQPYCMGYHZHSZTWQWRFXLJGACMRHCYYSPDDLYBYZNPBXYXHZDDNH MSGBWFZZJCYXGLRCCYHZLWJGCHGJYZFMZPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ                                                                 QZHFGDCJEAQCPJLSZDCZDWLDFRYBYSCCWBXGZMZZTQSCPMXJCJYCHCJWSNSXWJN MTNMCDQDZLLWNKPZGGLCCZMLBQJQDJJQTQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ                                                                 GHQAWBZJLTTDHHCCHFLSYYTQWCKTJBYPBPDQKXWYYFLXNCWCSBMAYKKJMZZZRXY AQJFLJPHHHXTZQMHSGZQWBWJDYJQZHSLZQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSS                                                                 YYMYSZGSXUWYSYSCSYZRLQYLJXCXTLHDQZPCYCYPPNXFYRCMSMSLXGLGCTLXYGZ GZTCPDSLLDTMTZALCPQJCJWTCYYZBLBZLSSSSSSSSSSSSSSSSSCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS                                                                 QMYLJBGHDLSSDHBDCSXHAMLZPJMCNHJYJYGCHSKQMZZLWJQSMOCDRLYQZHJMYBY LRETFJFRFKSYXFDWDSXXSYSJSLYXSNXYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS                                                                 XHAHHJCXWMLJCSQLKYDTTZSXFDXGSJHSXYBDPWNCMPJZCZENYCXQFJXKBDMLJQQ LXSLYXXYLLJDZBYMHBSTTQQWLHOGYBLSZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTT                                                                 ALXQLTWRRQLSTMYPYXJJXQSJPBRYXYJLLYQYLTHYLYMLGLJDMLLHFZWKHLJLHLJ KLJSTLQXYLMBSXCHXCFXLHHJJBYZZKBXSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT                                                                 DQDUJZSYHZXFEBCQWYYJQTQYJHQQZMWFFHFRBNDPCJLFZGPPXDBBZTTYGCHMFLY XLYPJSYWMQGQEXJQJTCBHXSFXLBYYJDDHTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWW                                                                 ZJQYJSLLDTKHHBFWDYSQRNWLDEBDWCYULJTMXMJSXYRWFYMWRXXYSCTZZDYMLDQ LWYQYJBSCXWLBRJWXHYBHYDNHHGMYWYTZWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWZWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXX                                                                 CSQDSDLWDCQPYCLQYJWXWZZMGLCLMXCMZSQTZPJQBLGXJZFLJJYCJNXWCXSCCDL SYJDQCXSQYCLZXZZXMXQRJHZJPHFLJLMLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                                                                 QNLDXZLLLFYPNGYSXCQQCMJZZHNPZMEKMXKYQLXSTXXHWDCWDZGYYFFJZDRZJZX RZJCHRTLBYZBSJHXZYPFDFGZZRYTNGXZQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                                                                 YMBUCCKRPJBJERZGYKHXKNSJKLJSGZLJYBZSQLBCKTYLCCCLPFYYDZYQGKQTTFC XDKDXXYFYTYHPDYTGHRYNJSBSNYJHKLLSXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY         ';hzpybm_6   CONSTANT VARCHAR (3500) = '                                                        LYDXXWBCJSBQFJZJCJDZFBXXBRMLAZGCSNCLDSTBLFZTSWSBXBCLLXXLZDTZSJY LYYFFFBHJJJGBYGJPMMMPSSCZJMTLYZJXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY                                                                 SWXTYLEDQPJMYGQZJGDJLQJWJQLLSDGYTQJCZCJDDHQGSGJHQXNJJZBXSGZXCXY LJXYXYDFQQJJFXDHCTXJDRXYSQTJXYEFYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYY                                                                 YSSYXJXNCYZXFXCSYSZXYYSCHSHXZZZGZZGFJDLDYNPZGYJYZTYQZPBXQBDZTZC ZYXXYHHSCXSHCGGQHJHGXWSCTMMLHYXGEYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZY                                                                 BTYLZKKWJZRCLEKETDBCYKQQSAYXCJXWWGSBHJSZSDHCSJKQCXSWXFCTYNYDPZC CZJJTZWJQDZZZQZLJCXLSBHBYDXPSXSHHZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ                                                                 EZDXFPTJQYZZXHYAXNCFZYYHXGNXMYWXTZSBKHHGYMXMXQCXTSBCQSJYXHTYYLY BCLMMSZMJZJLLCOGXZAAJZYHJMCHHCXZSZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ                                                                 XZDZNLEYJJZJBHZWZZSQTJPSXZTDSXJJZNYAZHHYYSRRQDTHZHAYJYJHDZJZLSW CLYBZYECWCYCRYLCXNHZYDZYDTRXXBZSXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ                                                                      QHXJHHHXXLHDLQLDBSXFZZYYCHTYYJBHECJKGJFXBZJFXHWHDZFYAPNPGNYMSHK HALNBYJTMXYJCTHJBZYFCGDYHWPHFTGZZCQWGNSPGCGNEGYPBTYYZDXYKYGTZJNMJQMBSGZSCYJSYYFPGKBZGYDYWJKGKLJYWKPJQHYJWRDZLSYMRYPYWWCCKZNKYYG                                                                 EZSBZEGPBMDSKFTYCMHBLLHGPZJXZJGZJYJZSBBQSCZZLZCCSTPGXMJSFDCCZLZ DJXCYBZLFCJSAZFGSZLYBCWZZBYZDZYPSTTNQJNYKKZYTCJNMCYLQLYPYSFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCKBPHFFSSTYBGMXLPBYLLBHLX                                                                 WYJGXZBDSYSXLGZYBZFYXTXCCXTZLSQYXZJQCCCDDXZJJQCGXTDGSCXZSYJJQCC LDQZTQCHQQJZTEZKKJCFYBQTYJLMKCQZJSMZMYJHSOJNGHDZQYKLGJHSGQZHXQGKEZZWYSCSCJXYEYXADZPMDSSMZJZQJYZCJJFWQJBDZBXGZNZCBWHWXHQKMWFBPBY                                                                 TPJNYJDDZQZXDPZJCDJSTCJNXBQMSJQMJJWWJJNJNLLLWQZQQCZPZYDCYDZCGTF CNCTQNDTJLZBCLLTDSXKJZQDPZLZNTJXZDTJZZKXXYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJYKDCSBBQBEFSJYHWWGZKPYLQBGLDLCDTNMAYDDKYSNGYCSGXLYZAYPN                                                                 BCJLTQQLDGDBBJQDCJWYNZLZCDWLLXWLRSNTQJCZXKJLDSTDGLHLAJJKLYXKQLL DZYTDYYCYGJYXDXFRSKSTCDENQMRKQZHHPTSDKDYLHGYMYLCXPYAQNDQJWXQXFYYFJLEJBZRXCCQWQQSBZKYMGPLBMJRQCFLNYMYQMTQYRBZJTHZTQFRXQHXMJJCJLX                                                                 QKDLDAZFKYPBGGPZREBZZYKYQSPEGJJGLKQZZZSLYSYWYZWFQZNLZZLZHWCGKYP QGNPGBLPLRRJYXCCCGYHSFZFWFZYWTGZXQGJMSHZKBSWYEMYLTXFSYDSGLYCJQXSJNQBSCTYHBFTDCYZDJWYGHQFSXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCL                                                                 YLJCZWHXZJZBLFFLGSKHYJDEYJHLPLLLLDZLWCZBLCXBBXBCBBNNZCYRDSYCGYY QBWTZDHDEDCCZCZTYKHDYNYJLXDJYQDJYQKXLHXJRZJMFQHXHWYWSBHTRXXGLHQHFNMGYKLDYXZPYLGGSMTCFPAJJZYLJTYANJGBJPLQGSZYQYAXBKYSECJSZNSLYZH                                                                 ZWLSHGLBCZBYZJYCTDYNDSYCTSZYYEGDWNYCXTDCYSHGZSCCSDDLCCRQXYYELSM HZTEBBLYYLLTQSYRXFKBXSYCHBJBWKGSKZXLZCGHPXZHZNYTDSBC';hzpybm_7   CONSTANT VARCHAR (3500) = 'JKTLZYYFFYDLEPBWQYZKXGLDNDNYSKJSHDLYXBZGYXYPKDJMMZNGMMCLGWZSZXZJFZNMLZZTHCS                                                                 GHJHXXGNLYCDLFWLJGBXBXQQZZPLNYBXJYQYMRBSYYHKXXSTMXRCZZYWXYHYMCF LZHQMQXDBXBZWZMLDMYCKFMKLZCYQYCZHYDBDLLSCDTNLKJYKJSYCJLKOHQASDKNHCSGSEHDAYSHTCPLCPQYBSDMPJLPZJOQLCDHJJYSPRCHNWJNLHLYYQYHWZPTCZG                                                                 XZLYYZMDDZYFTQPCZCYYPZHWLLYTZTZXDTQCYPKSCCYYAZJPCYLZYJTPNYYYNRC YLMMNXJSMYBSSLJGYLDZDPQHZZBLFNDSQWWMZFFJQQQQYXACLBHKDJXDGMMYTJXZLLSYGXGKJRYWZWYCLZMSSJZLDBYDCPCXYHLXCHYZJQSQQHGMNYXPFRKSSBJLYXY                                                                 KCZFHHHGQMRDSXYCSTXNQQRPYJBFCXDYQFBNXEJDGYQBSRCNFYYQPGHYJDYZXGR HTKHLEQDZNTSMGKLBSGBPYSZBYDJZSSTJSYGLNSCMHCWWMNZJJLXXHCHSYZSXTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLYXDCCWZOCWKCCSBNHCPDYZNFCYYTYCKX                                                                 ZSTXZBHBSCSBZCZPTQFZMQFLYPYBBJGSZMXXDJMTSYSKKBTXHJCEGBSMHYJZCXT MLJYXRZZSCXXQPTZHMKDXXXJCLJPRMYYGKYBSQKKYTQQXFCWCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQKPPQSQSCFYMMDMGBWHWLGSLLYSTLMLXPTHMJ                                                                 ADYSKQKNDHRSKQXZXZTCXHZTLMLWXYBSYCTBHJHJFCWZSXHWTKZLXQSHLYCZJXE MPLPRCGLTBZZTLZJCYJGDTSLKLPLLQPJMHWLJZYHZJXKTXJLHXRSWLWZJCBXMHZQXSDZPMGFCSGLSXYMQSHXPJXWMYZKSMYPLRTHBXFTPMHYXLCHLHLZYLXGSSSSTCL                                                                 ZPAPXYZLAKTKDNCZZBNCCTDQQZJYJGMCTXLDGCSZLMLHBGLKKBNWHDXUHLFMKYC LGXDTWZFRJEJCTZHYDXYKSHWFZCQSHKNQSLDCLRPBHZHXYYFHBMGDMYCNQQWLQHJJCYWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSLXHTZKZJECXJCJNMFBJCSFYWYB                                                                 QHTCHYMJDJSKHXZJZBZZXYMPAJQMCDBXLSKYYNWRTSQGSCBPDBSGZWYHTLKSSSW GZZLYYTNXJGMJKHSXFWNLSOZTXGXLSMMLJZGNYSDZSQYRSLJPCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNTXHPLQKZCZWALSPCCJXSYZHWK                                                                 BWLDSCYLKQCQSTMYCFJBSLXCLZJCLXXKSBZQZLHJPHQPLSXSCGSLNHPSFQQXTXJ JZLQLDXZJJZDYYDJNZPTUCDSKJFSLJHYLYPSGXFZFCDKHJGXTLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMSXLZJQQHZYJCZYDJWBMJKLDDPMJEGXYHYLXHLQYQHKYCW                                                                 ZQJZLBTHYDGDJFDYAZXDZHZJNHHQBYGNXJJYCZMLLJZKSPLDSCLBBLXKLELJLBJ YCXJXGCNLCQPLZLZNJTZLSYXBXMYZXWQCCJMYYXNATJHYCCXZPCQLBZWWYTWSQCMLPMYRJCCCXFPZNZZLJPLXXYZTZLJDLTCKLYRZZGQTGJHHGJLJAXFGFJZSLCFDQZ                                                                 ZYHZBTRBLHLCCCJADJLMMMSSHMYBHBCKKBHRSXXJMXLDZNZPXLBBRHGGHFCHGMS KLLTSJYYCQLCSKYWYEHYWHBHQYWBAWYKQLCLGJDJCZNZLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNW                                                                 LDQPTNTKHQCGDQKTGPKXHCPDHTWUHKDHTHLXYTYYDESPKYZPCEQDLTBDSDEGYJQ XCWXSSPZXDFQDLYJCLSXYZYRXCYYYDWNDCZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYJHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJDFCJXDYGJQJJPMGWGJJJPKQSB                                                                 AJQYHYWTJDAXYSRLTDPSAXFNEJDYZLXLLHZYQJHGJHZYCSHHSGCZYJGLLNYZCJN FSMFPYCYAWDDHDMCZLQZHZYSTLDYWLLHYGBMMCJSSCLPQPDXCDYYKYPCJDDYYGYWRHJRTGZNYQLDKLJSZZGZQZJGDYKSHPZMTLCPWNJYFYZDJCNMWESCYGLBTZCGMSS                                                                 MMYLMBWWKXYDTYLDJPYWUXJMMLLHAFDLLAFLBHHHBQTZCQJJTFMPMHYDCJRDDWR QNYSNMZBXYTBJHPBYGTJAHGQTBSTXKBTSLLYXQSXXBSJSBBSGGHFJLYPMZJNLYYWDQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJCHDXXLHJHFSSXZQHFZMZCZTQCXZXRTT                                                                 BKLXBEQQHQMJDWTTXPGBKTLGQXJJJCDH';hzpybm_8   CONSTANT VARCHAR (3500) = 'XQDWJLWRFMQGWQHCKRYSWGBTGYGBWSD WDFJXXXJZLPHYYPAYXHYDQQXSHXYXESKQDJHNNYZQQMTQDMMGYYTXMJGDXCDYZBFFALLZTDLTFXMXQZDNLWQDBDCZJDXBZGSQQDDJCMBKZFFXMKDMDSYYGZCMLJDSYN                                                                 HYWBDDDPPLCJLHQEEWJKSYYKDYPLFJTHKJLTCYJHHJTTBLTZZCDLTHQKCJQYSTE EYWKYZYXXYYSDDJKLLPWMCYHQGXYHCRMBSBRSKMKMPCKLGTBQTFZSWTFGGLYPLLJZHGJJGYPZLTCSMCNBTJBQFKDHBYZGKPBBYMTDSSXTBNPDKLEYCJNYDDYKZTDHQH                                                                 XPLLNQTJHYYLFBGFXZBSBTLGXXJBSWYYSKSFLXLPPLBBBLBSFXYZSYLFFFSCJDS TZTRYYCYFFSYZYZBJTBCTSBSDHRTJHBYTSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHPJTZQKSECSHALQFMMGJNLYJBBTMLYZXDXJPLDLPCQDHZYCBZSCZBZMSLJFLKR                                                                 CXYJELXBNEBJDSYSYHGSJCBXBYDFZWGENYHHHJHAXFWGCSTBGXKLSTYWMTMBYXJ SKZSXDYJRCWXZFHMYMCXLZNDTDHLXDJGGZJSNFRGJHXPDHYJYBZGDLQCSEZGXLBLHYXTWMABCHECMWYJYZLLJJYHLGNDJLSLYGKDZPZXJYYZLWCXSZFGWYYDLYHCLJS                                                                 YBFBNBBTHFJAAXYFPXMYFHDTTCXZZPXRSYWZDLYBBJTYQWQJPZYPZJZNJPZJLZT FYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMCMBJHBLYZLYCBLYDPDQYSXQZBYTDKYYJYYCNRJMPDJGKLCLJBZXBJDDBBLBLCZQRPPXJCJLZCSHLTOLJNMDDDLNGKATHQH                                                                 LHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTGSQCZLPTXCDYYZSS QZSLXLZMACPCQBZYXHBSXLZDLTCDJTYLZJHYKHEZNMSHRPHQQJCHGMFPRXHJGDYCHGKLYRZQLCYQJNZSQTKQJYMSZXWLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMM                                                                 JYYTPZYLLTXJSJXHLBRYBXQZSKSWWWYGYABBCTQKTGPOSBXBBCMLLXZTBKLGQKQ LSKDFXRDKBFPFTBBMFEEQGKPZSSTLBTPSMYXCTPSHCPTXXZZSMPHPSHMCLMLDQFYQXSZYJDJJZZHQPDSZGLSTJBCKBXYQZYSGPSXQZQZRQTBDKWXZKHHGFLBCSMDLDG                                                                 ZZSJDHLQLZPMSMMSXLQQNKNBRDDNHXDKDDJYYYFZGZLGSMJQGXYTQLGPBJXCYZY DRJBHTDJYEJSHTMJSBYPLWHLZFFNYNMHXDZDBLZYYCXNNCSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJQLZZNZJCDGZYG                                                                 QHPLTBQPFBCWJDBYGPNXTBFZJGSDCTJSHXEAWZZYLLTYYBWJKGXGHLMKXTJTMSZ SQYNZGGSWQSPHTLSSKMCLSKYSZQQXNCJDZTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNPXCJPFCZLCLZXZDMXMPHJSGZ                                                                 QGZDLFNYKLJCJLLZLMZZNHDSSSHTHXZLZJBBHQZWWYCRDHLYQQJBEYFSJXTHSRH WJHWPSLMSSGZTTYEYQQWRHLALHMJTQJSMGSZZQJYLWTJPFSYAXMCJBTZYYCWMYTZSJJLQCQLWZMALBXYFBPNLSFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNDSZFDEQFHBS                                                                 XQPJJZJXZYZKXBYQXBJXSHZSSFGLXYXZXFGHKZSZGGYLCHSARJXHSLLLMZXELGL XDJTBHYZBPKTZHKZJYQSBCTWWQJPJWXHGAQTGYLBXMMYGSZLDYDQMJJRGBJTKGDHGKBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ                                                                 ZGNYFLJBYFDJFRGSFMBYZHQFBWJSYFYJJPHZBYYZFFWODJRLMFTMLBZGYCQXCDJ YGZYYYYDYTYDWEGAZYHXJLZYYHLRMGRJX                                                                                                                                                               ZCLQTELJJTHTBWJYBJJBXJJTJTEEKHWSLZKLPSFAZPQQBDLQJJTYYQLYZKDKSQJ YYJZLDQCGJQYZJSYCMRAQTHTEJMFCTYHY                                                                                                                                                               PKMHYCWJDCFHYYXWSHCTXRLJGJSHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYW JYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLX                                                                                                           ';hzpybm_9   CONSTANT VARCHAR (3500) = '                                                    YJZYZYYPNHMYMDYYLBLHLSYYGQLLSCXLXHZWKQGYSHQYWLJYYHZMSLJLJXCJJYY CPCPZJMYLCJLNJJJLXXJMLZJQLYCMHCFM                                                                                                                                                               MFPQQMFXLMCFQMMMZNFHJGTTHKHCHYDXTMQDYMYYDYYYDZDCYMDYDLFMYCQCWZZ MABTBCMDZGDFYCGCYTTNFWBDTZQSSSTJJ                                                                                                                                                               HJYTSXLYWWHXEXWZNNQZJZJJCCCHYYXBZXZCYJTLLCQXYNJYCYYCYNZZQYYYEWY CZDCJYHYLPGPYLLGKDLDGQBCHJXY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ';BEGINhzlen = COALESCE(LENGTH (v_str), 0);hasspace = 0;FOR pos IN 1 .. hzlenLOOPhz = SUBSTR (v_str, pos, 1);hzbm = bytea_to_int(convert_to(hz,'gbk'));IF hzbm BETWEEN 0 AND 127THENhz = UPPER(hz);         --大写, 并只允许 0-9 和 A-Z 字符IF (hz >= '0' AND hz <= '9') OR (hz >='A' AND hz <= 'Z') THENpy = CONCAT(py, hz);END IF;ELSEBEGINhzbm = hzbm - 32767;--少减1, 因为下面使用字符串定位, 起始基址为1CASEWHEN hzbm < 0THENhzpy = '';WHEN hzbm < 3500THENhzpy = SUBSTR (hzpybm_0, hzbm, 1);WHEN hzbm < 7000THENhzpy = SUBSTR (hzpybm_1, hzbm - 3500, 1);WHEN hzbm < 10500THENhzpy = SUBSTR (hzpybm_2, hzbm - 7000, 1);WHEN hzbm < 14000THENhzpy = SUBSTR (hzpybm_3, hzbm - 10500, 1);WHEN hzbm < 17500THENhzpy = SUBSTR (hzpybm_4, hzbm - 14000, 1);WHEN hzbm < 21000THENhzpy = SUBSTR (hzpybm_5, hzbm - 17500, 1);WHEN hzbm < 24500THENhzpy = SUBSTR (hzpybm_6, hzbm - 21000, 1);WHEN hzbm < 28000THENhzpy = SUBSTR (hzpybm_7, hzbm - 24500, 1);WHEN hzbm < 31500THENhzpy = SUBSTR (hzpybm_8, hzbm - 28000, 1);WHEN hzbm < 35000THENhzpy = SUBSTR (hzpybm_9, hzbm - 31500, 1);ELSEhzpy = '';END CASE;IF hzpy <> ' ' THENpy = CONCAT(py, hzpy);END IF;END;END IF;END LOOP;RETURN py;
END;
$BODY$LANGUAGE plpgsql IMMUTABLECOST 100

方案2(部分转换不了,不推荐)


CREATE OR REPLACE FUNCTION "public"."pinyin_first_char"("s" varchar)RETURNS "pg_catalog"."varchar" AS $BODY$
declareretval character varying;c character varying;l integer;b bytea;  w integer;-- 【汉字转为首字母大写】-- 推荐使用【pinyin_first_cap】
-- 小写字母会被转为大写,中文转为拼音首字母大写,其他原样输出(GB18030字符集有限,少部分字无法转换原样输出,该函数还有待改进)
-- SELECT pinyin_first_char('hello WORLD,你好,世界')
-- HELLO WORLD,NH,SJbegin
l=length(s);
retval='';
while l>0 loopc=left(s,1);b=convert_to(c,'GB18030')::bytea;if get_byte(b,0)<127 thenretval=retval || upper(c);elsif length(b)=2 thenbeginw=get_byte(b,0)*256+get_byte(b,1);--汉字GBK编码按拼音排序,按字符数来查找if w between 45217 and 45252 then --"A";45217;45252;35retval=retval || 'A';elsif w between 45253 and 45760 then --"B";45253;45760;507retval=retval || 'B';elsif w between 45761 and 46317 then --"C";45761;46317;556retval=retval || 'C';elsif w between 46318 and 46825 then --"D";46318;46825;507retval=retval || 'D';elsif w between 46826 and 47009 then--"E";46826;47009;183retval=retval || 'E';elsif w between 47010 and 47296 then--"F";47010;47296;286retval=retval || 'F';elsif w between 47297 and 47613 then --"G";47297;47613;316retval=retval || 'G';elsif w between 47614 and 48118 then --"H";47614;48118;504retval=retval || 'H';elsif w between 48119 and 49061 then --"J";48119;49061;942retval=retval || 'J';elsif w between 49062 and 49323 then--"K";49062;49323;261retval=retval || 'K';elsif w between 49324 and 49895 then --"L";49324;49895;571retval=retval || 'L';elsif w between 49896 and 50370 then --"M";49896;50370;474retval=retval || 'M';elsif w between 50371 and 50613 then --"N";50371;50613;242retval=retval || 'N';elsif w between 50614 and 50621 then --"O";50614;50621;7retval=retval || 'O';elsif w between 50622 and 50905 then--"P";50622;50905;283retval=retval || 'P';elsif w between 50906 and 51386 then --"Q";50906;51386;480retval=retval || 'Q';elsif w between 51387 and 51445 then--"R";51387;51445;58retval=retval || 'R';elsif w between 51446 and 52216 then --"S";51446;52217;retval=retval || 'S';elsif w between 52218 and 52697 then --"T";52218;52697;479retval=retval || 'T';elsif w between 52698 and 52979 then--"W";52698;52979;281retval=retval || 'W';elsif w between 52980 and 53688 then --"X";52980;53688;retval=retval || 'X';elsif w between 53689 and 54480 then --"Y";53689;54480;791retval=retval || 'Y';elsif w between 54481 and 55289 then --"Z";54481;55289;808retval=retval || 'Z';else retval=retval || c;end if;end;end if;s=substring(s,2,l-1);l=l-1;
end loop;
return retval;
end;
$BODY$LANGUAGE plpgsql IMMUTABLECOST 100

相关文章:

PostgreSQL汉字转拼音首字母

PostgreSQL汉字转拼音首字母&#xff0c;最近有个需求要做搜索优化&#xff0c;要求提取汉字首字母识别输入&#xff0c;图方便直接数据库用函数批量转换了&#xff0c;整理了网上的两个方法函数备忘&#xff0c;非原创。 https://blog.qdac.cc/?p1281 https://developer.aliy…...

HBuilderX修改manifest.json设置,解决跨域问题(CORS、Cross-Origin)

搭建一个前台uniapp&#xff0c;后台springboot的开发环境时&#xff0c;遇到了跨域问题。 console提示错误信息&#xff1a; Access to XMLHttpRequest at http://10.0.180.203/api/cms/getAdList?apId1 from origin http://localhost:8080 has been blocked by CORS policy…...

AR地图微信小程序:数字化时代下地图应用的新突破

随着数字化时代的到来&#xff0c;地图应用成为人们日常生活中不可或缺的工具。而随着增强现实&#xff08;AR&#xff09;技术的快速发展&#xff0c;AR地图微信小程序应运而生&#xff0c;为用户提供了一种全新的地图导航体验。本文将深入探讨AR地图微信小程序的专业性和思考…...

成集云 | 抖店客户静默下单催付数据同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 随着各品牌全渠道铺货&#xff0c;主播在平台上直播时客户下了订单后不能及时付款&#xff0c;第一时间客户收不到提醒&#xff0c;不仅造成了客户付款率下降&#xff0c;更大量消耗了企业的人力成本和经济。而成集云与钉钉深度合作&#xff0…...

C++中的运算符总结(5):按位逻辑运算符

C中的运算符总结&#xff08;5&#xff09;&#xff1a;按位逻辑运算符 9、按位运算符 NOT&#xff08; &#xff5e;&#xff09;、 AND&#xff08; &&#xff09;、 OR&#xff08; |&#xff09;和 XOR&#xff08; ^&#xff09; 逻辑运算符和按位运算符之前的差别在…...

《异常检测——从经典算法到深度学习》22 Kontrast: 通过自监督对比学习识别软件变更中的错误

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …...

大数据风控介绍

众所周知&#xff0c;金融是数据化程度最高的行业之一&#xff0c;也是人工智能和大数据技术重要的应用领域。随着大数据收集、存储、分析和模型技术日益成熟&#xff0c;大数据技术逐渐应用到金融风控的各个环节。个推作为专业的数据智能服务商&#xff0c;拥有海量数据资源&a…...

Linux内核学习(九)—— 虚拟文件系统(基于Linux 2.6内核)

虚拟文件系统&#xff08;VFS&#xff09;作为内核子系统&#xff0c;为用户空间程序提供了文件和文件系统相关的接口。通过虚拟文件系统&#xff0c;程序可以利用标准的 Unix 系统调用对不同的文件系统&#xff08;甚至不同介质上的文件系统&#xff09;进行读写操作。 一、通…...

【模拟】算法实战

文章目录 一、算法原理二、算法实战1. leetcode1576 替换所有的问号2. leetcode495 提莫攻击3. leetcode6 N字形变换4. leetcode38 外观数列5. leetcode1419 数青蛙 三、总结 一、算法原理 模拟就是用计算机来模拟题目中要求的操作&#xff0c;模拟题目通常具有代码量大、操作…...

各个微服务模块之间互相依赖调用的问题

首先是模块之间不能够循环引用&#xff0c;否则会报循环依赖引入的错误。 没有了模块之间的相互依赖&#xff0c;在项目中这两个模块是相互调用的&#xff0c;分别各自定义相应的Feign接口&#xff0c;如下&#xff1a; 最开始写的运行报错的代码如下&#xff1a; FeignCli…...

理论转换实践之keepalived+nginx实现HA

背景&#xff1a; keepalivednginx实现ha是网站和应用服务器常用的方法&#xff0c;之前项目中单独用nginx实现过负载均衡和服务转发&#xff0c;keepalived一直停留在理论节点&#xff0c;加之最近工作编写的一个技术文档用到keepalived&#xff0c;于是便有了下文。 服务组件…...

华为OD七日集训第1期复盘 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)

目录 一、活动内容如下第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、双指针第5天、递归回溯第6天、二分查找第7天、贪心算法 && 二叉树 二、可观测性工程1、简介2、主要内容 大家好&#xff0c;我是哪吒。 最近一直在刷华为OD机试的算法题&#xff0c;坚持…...

MPI之持久化通信句柄与非持久化通信句柄

MPI_Isend & MPI_Send 创建临时通信句柄 在前面的文章中举了例子&#xff0c;我们使用MPI_Isend接口发送数据时&#xff0c;有个传出参数request&#xff0c;该参数是创建的通信句柄&#xff0c; 实际上该句柄是一个临时句柄&#xff0c;即只用于一次性发送数据的场景&…...

搭建个人备忘录中心服务memos、轻量级笔记服务

目录 一、源码 二、官网 三、搭建 四、使用 一、源码 GitHub - usememos/memos: A privacy-first, lightweight note-taking service. Easily capture and share your great thoughts. 二、官网 memos - Easily capture and share your great thoughts 三、搭建 docke…...

探究代理技术在网络安全、爬虫与HTTP通信中的多重应用

在当今高度互联的世界中&#xff0c;代理技术在网络安全、爬虫开发以及HTTP通信中扮演着举足轻重的角色。本文将深入探讨Socks5代理、IP代理以及HTTP代理在这些领域中的多重应用&#xff0c;探索其如何为我们创造更安全、高效的网络环境。 1. Socks5代理&#xff1a;构建安全通…...

vue左侧漏斗切换 echart图表动态更新

这个需求是根据点击左侧的箭头部分&#xff0c;右侧图表切换&#xff0c;左侧选中数据高亮&#xff08;图片用的svg&#xff09; 一、效果图 二、vue组件 <template><div class"funnel_wrap"><div class"flex_between"><div class&q…...

Centos7安装ZK-UI管理界面安装|Maven|Git|

一: JDK1.8安装 参考: Centos7卸载|安装JDK1.8|Xshell7批量控制多个终端 二&#xff1a;Maven安装 2.1&#xff1a;下载maven安装包 maven 下载地址&#xff1a;https://mirror.bit.edu.cn/apache/maven/maven-3/ [rootwww ~]# mkdir -p /usr/local/maven [rootwww ~]# …...

C语言日常刷题7

文章目录 题目答案与解析1234567 题目 1、如下程序的运行结果是&#xff08; &#xff09; char c[5]{a, b, \0, c, \0}; printf("%s", c)A: ‘a’ ‘b’ B: ab\0c\0 C: ab c D: ab 2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确…...

037 - 有关时间和日期的函数方法

文档&#xff1a;MySQL :: MySQL 5.7 Reference Manual :: 12.7 Date and Time Functions​​​​​​ 以下为案例&#xff0c;更多内容可查看文档 返回当前日期&#xff1a; CURDATE() 返回当前时间&#xff1a; CURTIME() 返回当前日期和时间&#xff1a; NOW() 返回年份&a…...

(JAVA)树——tree

...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...