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

HBuilderX修改manifest.json设置,解决跨域问题(CORS、Cross-Origin)
搭建一个前台uniapp,后台springboot的开发环境时,遇到了跨域问题。 console提示错误信息: 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地图微信小程序:数字化时代下地图应用的新突破
随着数字化时代的到来,地图应用成为人们日常生活中不可或缺的工具。而随着增强现实(AR)技术的快速发展,AR地图微信小程序应运而生,为用户提供了一种全新的地图导航体验。本文将深入探讨AR地图微信小程序的专业性和思考…...

成集云 | 抖店客户静默下单催付数据同步钉钉 | 解决方案
源系统成集云目标系统 方案介绍 随着各品牌全渠道铺货,主播在平台上直播时客户下了订单后不能及时付款,第一时间客户收不到提醒,不仅造成了客户付款率下降,更大量消耗了企业的人力成本和经济。而成集云与钉钉深度合作࿰…...
C++中的运算符总结(5):按位逻辑运算符
C中的运算符总结(5):按位逻辑运算符 9、按位运算符 NOT( ~)、 AND( &)、 OR( |)和 XOR( ^) 逻辑运算符和按位运算符之前的差别在…...

《异常检测——从经典算法到深度学习》22 Kontrast: 通过自监督对比学习识别软件变更中的错误
《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …...

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

Linux内核学习(九)—— 虚拟文件系统(基于Linux 2.6内核)
虚拟文件系统(VFS)作为内核子系统,为用户空间程序提供了文件和文件系统相关的接口。通过虚拟文件系统,程序可以利用标准的 Unix 系统调用对不同的文件系统(甚至不同介质上的文件系统)进行读写操作。 一、通…...

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

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

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

华为OD七日集训第1期复盘 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)
目录 一、活动内容如下第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、双指针第5天、递归回溯第6天、二分查找第7天、贪心算法 && 二叉树 二、可观测性工程1、简介2、主要内容 大家好,我是哪吒。 最近一直在刷华为OD机试的算法题,坚持…...

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

搭建个人备忘录中心服务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通信中的多重应用
在当今高度互联的世界中,代理技术在网络安全、爬虫开发以及HTTP通信中扮演着举足轻重的角色。本文将深入探讨Socks5代理、IP代理以及HTTP代理在这些领域中的多重应用,探索其如何为我们创造更安全、高效的网络环境。 1. Socks5代理:构建安全通…...

vue左侧漏斗切换 echart图表动态更新
这个需求是根据点击左侧的箭头部分,右侧图表切换,左侧选中数据高亮(图片用的svg) 一、效果图 二、vue组件 <template><div class"funnel_wrap"><div class"flex_between"><div class&q…...

Centos7安装ZK-UI管理界面安装|Maven|Git|
一: JDK1.8安装 参考: Centos7卸载|安装JDK1.8|Xshell7批量控制多个终端 二:Maven安装 2.1:下载maven安装包 maven 下载地址:https://mirror.bit.edu.cn/apache/maven/maven-3/ [rootwww ~]# mkdir -p /usr/local/maven [rootwww ~]# …...
C语言日常刷题7
文章目录 题目答案与解析1234567 题目 1、如下程序的运行结果是( ) char c[5]{a, b, \0, c, \0}; printf("%s", c)A: ‘a’ ‘b’ B: ab\0c\0 C: ab c D: ab 2、若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确…...
037 - 有关时间和日期的函数方法
文档:MySQL :: MySQL 5.7 Reference Manual :: 12.7 Date and Time Functions 以下为案例,更多内容可查看文档 返回当前日期: CURDATE() 返回当前时间: CURTIME() 返回当前日期和时间: NOW() 返回年份&a…...

(JAVA)树——tree
...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

Linux基础开发工具——vim工具
文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...