oracle汉字转拼音函数

第一种方法:(首字母/全拼)

create or replace type spell_code as object(spell varchar2(10),code number); create or replace type t_spellcode is table of spell_code;

--返回拼音与代码的对应关系

create or replace function f_getSpellcode return t_spellcode Pipelined

is

Begin

PIPE Row(spell_code('a', -20319));

PIPE Row(spell_code('ai', -20317));

PIPE Row(spell_code('an', -20304));

PIPE Row(spell_code('ang', -20295));

PIPE Row(spell_code('ao', -20292));

PIPE Row(spell_code('ba', -20283));

PIPE Row(spell_code('bai', -20265));

PIPE Row(spell_code('ban', -20257));

PIPE Row(spell_code('bang', -20242));

PIPE Row(spell_code('bao', -20230));

PIPE Row(spell_code('bei', -20051));

PIPE Row(spell_code('ben', -20036));

PIPE Row(spell_code('beng', -20032));

PIPE Row(spell_code('bi', -20026));

PIPE Row(spell_code('bian', -20002));

PIPE Row(spell_code('biao', -19990));

PIPE Row(spell_code('bie', -19986));

PIPE Row(spell_code('bin', -19982));

PIPE Row(spell_code('bing', -19976));

PIPE Row(spell_code('bo', -19805));

PIPE Row(spell_code('bu', -19784));

PIPE Row(spell_code('ca', -19775));

PIPE Row(spell_code('cai', -19774));

PIPE Row(spell_code('can', -19763));

PIPE Row(spell_code('cang', -19756));

PIPE Row(spell_code('cao', -19751));

PIPE Row(spell_code('ce', -19746));

PIPE Row(spell_code('ceng', -19741));

PIPE Row(spell_code('cha', -19739));

PIPE Row(spell_code('chan', -19725)); PIPE Row(spell_code('chang', -19715)); PIPE Row(spell_code('chao', -19540)); PIPE Row(spell_code('che', -19531)); PIPE Row(spell_code('chen', -19525)); PIPE Row(spell_code('cheng', -19515)); PIPE Row(spell_code('chi', -19500)); PIPE Row(spell_code('chong', -19484)); PIPE Row(spell_code('chou', -19479)); PIPE Row(spell_code('chu', -19467)); PIPE Row(spell_code('chuai', -19289)); PIPE Row(spell_code('chuan', -19288)); PIPE Row(spell_code('chuang', -19281)); PIPE Row(spell_code('chui', -19275)); PIPE Row(spell_code('chun', -19270)); PIPE Row(spell_code('chuo', -19263)); PIPE Row(spell_code('ci', -19261)); PIPE Row(spell_code('cong', -19249)); PIPE Row(spell_code('cou', -19243)); PIPE Row(spell_code('cu', -19242)); PIPE Row(spell_code('cuan', -19238)); PIPE Row(spell_code('cui', -19235)); PIPE Row(spell_code('cun', -19227)); PIPE Row(spell_code('cuo', -19224)); PIPE Row(spell_code('da', -19218)); PIPE Row(spell_code('dai', -19212)); PIPE Row(spell_code('dan', -19038)); PIPE Row(spell_code('dang', -19023)); PIPE Row(spell_code('dao', -19018)); PIPE Row(spell_code('de', -19006)); PIPE Row(spell_code('deng', -19003)); PIPE Row(spell_code('di', -18996)); PIPE Row(spell_code('dian', -18977)); PIPE Row(spell_code('diao', -18961)); PIPE Row(spell_code('die', -18952)); PIPE Row(spell_code('ding', -18783)); PIPE Row(spell_code('diu', -18774));

PIPE Row(spell_code('dou', -18763)); PIPE Row(spell_code('du', -18756)); PIPE Row(spell_code('duan', -18741)); PIPE Row(spell_code('dui', -18735)); PIPE Row(spell_code('dun', -18731)); PIPE Row(spell_code('duo', -18722)); PIPE Row(spell_code('e', -18710)); PIPE Row(spell_code('en', -18697)); PIPE Row(spell_code('er', -18696)); PIPE Row(spell_code('fa', -18526)); PIPE Row(spell_code('fan', -18518)); PIPE Row(spell_code('fang', -18501)); PIPE Row(spell_code('fei', -18490)); PIPE Row(spell_code('fen', -18478)); PIPE Row(spell_code('feng', -18463)); PIPE Row(spell_code('fo', -18448)); PIPE Row(spell_code('fou', -18447)); PIPE Row(spell_code('fu', -18446)); PIPE Row(spell_code('ga', -18239)); PIPE Row(spell_code('gai', -18237)); PIPE Row(spell_code('gan', -18231)); PIPE Row(spell_code('gang', -18220)); PIPE Row(spell_code('gao', -18211)); PIPE Row(spell_code('ge', -18201)); PIPE Row(spell_code('gei', -18184)); PIPE Row(spell_code('gen', -18183)); PIPE Row(spell_code('geng', -18181)); PIPE Row(spell_code('gong', -18012)); PIPE Row(spell_code('gou', -17997)); PIPE Row(spell_code('gu', -17988)); PIPE Row(spell_code('gua', -17970)); PIPE Row(spell_code('guai', -17964)); PIPE Row(spell_code('guan', -17961)); PIPE Row(spell_code('guang', -17950)); PIPE Row(spell_code('gui', -17947)); PIPE Row(spell_code('gun', -17931)); PIPE Row(spell_code('guo', -17928));

PIPE Row(spell_code('hai', -17759)); PIPE Row(spell_code('han', -17752)); PIPE Row(spell_code('hang', -17733)); PIPE Row(spell_code('hao', -17730)); PIPE Row(spell_code('he', -17721)); PIPE Row(spell_code('hei', -17703)); PIPE Row(spell_code('hen', -17701)); PIPE Row(spell_code('heng', -17697)); PIPE Row(spell_code('hong', -17692)); PIPE Row(spell_code('hou', -17683)); PIPE Row(spell_code('hu', -17676)); PIPE Row(spell_code('hua', -17496)); PIPE Row(spell_code('huai', -17487)); PIPE Row(spell_code('huan', -17482)); PIPE Row(spell_code('huang', -17468)); PIPE Row(spell_code('hui', -17454)); PIPE Row(spell_code('hun', -17433)); PIPE Row(spell_code('huo', -17427)); PIPE Row(spell_code('ji', -17417)); PIPE Row(spell_code('jia', -17202)); PIPE Row(spell_code('jian', -17185)); PIPE Row(spell_code('jiang', -16983)); PIPE Row(spell_code('jiao', -16970)); PIPE Row(spell_code('jie', -16942)); PIPE Row(spell_code('jin', -16915)); PIPE Row(spell_code('jing', -16733)); PIPE Row(spell_code('jiong', -16708)); PIPE Row(spell_code('jiu', -16706)); PIPE Row(spell_code('ju', -16689)); PIPE Row(spell_code('juan', -16664)); PIPE Row(spell_code('jue', -16657)); PIPE Row(spell_code('jun', -16647)); PIPE Row(spell_code('ka', -16474)); PIPE Row(spell_code('kai', -16470)); PIPE Row(spell_code('kan', -16465)); PIPE Row(spell_code('kang', -16459)); PIPE Row(spell_code('kao', -16452));

PIPE Row(spell_code('ken', -16433)); PIPE Row(spell_code('keng', -16429)); PIPE Row(spell_code('kong', -16427)); PIPE Row(spell_code('kou', -16423)); PIPE Row(spell_code('ku', -16419)); PIPE Row(spell_code('kua', -16412)); PIPE Row(spell_code('kuai', -16407)); PIPE Row(spell_code('kuan', -16403)); PIPE Row(spell_code('kuang', -16401)); PIPE Row(spell_code('kui', -16393)); PIPE Row(spell_code('kun', -16220)); PIPE Row(spell_code('kuo', -16216)); PIPE Row(spell_code('la', -16212)); PIPE Row(spell_code('lai', -16205)); PIPE Row(spell_code('lan', -16202)); PIPE Row(spell_code('lang', -16187)); PIPE Row(spell_code('lao', -16180)); PIPE Row(spell_code('le', -16171)); PIPE Row(spell_code('lei', -16169)); PIPE Row(spell_code('leng', -16158)); PIPE Row(spell_code('li', -16155)); PIPE Row(spell_code('lia', -15959)); PIPE Row(spell_code('lian', -15958)); PIPE Row(spell_code('liang', -15944)); PIPE Row(spell_code('liao', -15933)); PIPE Row(spell_code('lie', -15920)); PIPE Row(spell_code('lin', -15915)); PIPE Row(spell_code('ling', -15903)); PIPE Row(spell_code('liu', -15889)); PIPE Row(spell_code('long', -15878)); PIPE Row(spell_code('lou', -15707)); PIPE Row(spell_code('lu', -15701)); PIPE Row(spell_code('lv', -15681)); PIPE Row(spell_code('luan', -15667)); PIPE Row(spell_code('lue', -15661)); PIPE Row(spell_code('lun', -15659)); PIPE Row(spell_code('luo', -15652));

PIPE Row(spell_code('mai', -15631)); PIPE Row(spell_code('man', -15625)); PIPE Row(spell_code('mang', -15454)); PIPE Row(spell_code('mao', -15448)); PIPE Row(spell_code('me', -15436)); PIPE Row(spell_code('mei', -15435)); PIPE Row(spell_code('men', -15419)); PIPE Row(spell_code('meng', -15416)); PIPE Row(spell_code('mi', -15408)); PIPE Row(spell_code('mian', -15394)); PIPE Row(spell_code('miao', -15385)); PIPE Row(spell_code('mie', -15377)); PIPE Row(spell_code('min', -15375)); PIPE Row(spell_code('ming', -15369)); PIPE Row(spell_code('miu', -15363)); PIPE Row(spell_code('mo', -15362)); PIPE Row(spell_code('mou', -15183)); PIPE Row(spell_code('mu', -15180)); PIPE Row(spell_code('na', -15165)); PIPE Row(spell_code('nai', -15158)); PIPE Row(spell_code('nan', -15153)); PIPE Row(spell_code('nang', -15150)); PIPE Row(spell_code('nao', -15149)); PIPE Row(spell_code('ne', -15144)); PIPE Row(spell_code('nei', -15143)); PIPE Row(spell_code('nen', -15141)); PIPE Row(spell_code('neng', -15140)); PIPE Row(spell_code('ni', -15139)); PIPE Row(spell_code('nian', -15128)); PIPE Row(spell_code('niang', -15121)); PIPE Row(spell_code('niao', -15119)); PIPE Row(spell_code('nie', -15117)); PIPE Row(spell_code('nin', -15110)); PIPE Row(spell_code('ning', -15109)); PIPE Row(spell_code('niu', -14941)); PIPE Row(spell_code('nong', -14937)); PIPE Row(spell_code('nu', -14933));

PIPE Row(spell_code('nuan', -14929)); PIPE Row(spell_code('nue', -14928)); PIPE Row(spell_code('nuo', -14926)); PIPE Row(spell_code('o', -14922)); PIPE Row(spell_code('ou', -14921)); PIPE Row(spell_code('pa', -14914)); PIPE Row(spell_code('pai', -14908)); PIPE Row(spell_code('pan', -14902)); PIPE Row(spell_code('pang', -14894)); PIPE Row(spell_code('pao', -14889)); PIPE Row(spell_code('pei', -14882)); PIPE Row(spell_code('pen', -14873)); PIPE Row(spell_code('peng', -14871)); PIPE Row(spell_code('pi', -14857)); PIPE Row(spell_code('pian', -14678)); PIPE Row(spell_code('piao', -14674)); PIPE Row(spell_code('pie', -14670)); PIPE Row(spell_code('pin', -14668)); PIPE Row(spell_code('ping', -14663)); PIPE Row(spell_code('po', -14654)); PIPE Row(spell_code('pu', -14645)); PIPE Row(spell_code('qi', -14630)); PIPE Row(spell_code('qia', -14594)); PIPE Row(spell_code('qian', -14429)); PIPE Row(spell_code('qiang', -14407)); PIPE Row(spell_code('qiao', -14399)); PIPE Row(spell_code('qie', -14384)); PIPE Row(spell_code('qin', -14379)); PIPE Row(spell_code('qing', -14368)); PIPE Row(spell_code('qiong', -14355)); PIPE Row(spell_code('qiu', -14353)); PIPE Row(spell_code('qu', -14345)); PIPE Row(spell_code('quan', -14170)); PIPE Row(spell_code('que', -14159)); PIPE Row(spell_code('qun', -14151)); PIPE Row(spell_code('ran', -14149)); PIPE Row(spell_code('rang', -14145));

PIPE Row(spell_code('re', -14137)); PIPE Row(spell_code('ren', -14135)); PIPE Row(spell_code('reng', -14125)); PIPE Row(spell_code('ri', -14123)); PIPE Row(spell_code('rong', -14122)); PIPE Row(spell_code('rou', -14112)); PIPE Row(spell_code('ru', -14109)); PIPE Row(spell_code('ruan', -14099)); PIPE Row(spell_code('rui', -14097)); PIPE Row(spell_code('run', -14094)); PIPE Row(spell_code('ruo', -14092)); PIPE Row(spell_code('sa', -14090)); PIPE Row(spell_code('sai', -14087)); PIPE Row(spell_code('san', -14083)); PIPE Row(spell_code('sang', -13917)); PIPE Row(spell_code('sao', -13914)); PIPE Row(spell_code('se', -13910)); PIPE Row(spell_code('sen', -13907)); PIPE Row(spell_code('seng', -13906)); PIPE Row(spell_code('sha', -13905)); PIPE Row(spell_code('shai', -13896)); PIPE Row(spell_code('shan', -13894)); PIPE Row(spell_code('shang', -13878)); PIPE Row(spell_code('shao', -13870)); PIPE Row(spell_code('she', -13859)); PIPE Row(spell_code('shen', -13847)); PIPE Row(spell_code('sheng', -13831)); PIPE Row(spell_code('shi', -13658)); PIPE Row(spell_code('shou', -13611)); PIPE Row(spell_code('shu', -13601)); PIPE Row(spell_code('shua', -13406)); PIPE Row(spell_code('shuai', -13404)); PIPE Row(spell_code('shuan', -13400)); PIPE Row(spell_code('shuang', -13398)); PIPE Row(spell_code('shui', -13395)); PIPE Row(spell_code('shun', -13391)); PIPE Row(spell_code('shuo', -13387));

PIPE Row(spell_code('song', -13367)); PIPE Row(spell_code('sou', -13359)); PIPE Row(spell_code('su', -13356)); PIPE Row(spell_code('suan', -13343)); PIPE Row(spell_code('sui', -13340)); PIPE Row(spell_code('sun', -13329)); PIPE Row(spell_code('suo', -13326)); PIPE Row(spell_code('ta', -13318)); PIPE Row(spell_code('tai', -13147)); PIPE Row(spell_code('tan', -13138)); PIPE Row(spell_code('tang', -13120)); PIPE Row(spell_code('tao', -13107)); PIPE Row(spell_code('te', -13096)); PIPE Row(spell_code('teng', -13095)); PIPE Row(spell_code('ti', -13091)); PIPE Row(spell_code('tian', -13076)); PIPE Row(spell_code('tiao', -13068)); PIPE Row(spell_code('tie', -13063)); PIPE Row(spell_code('ting', -13060)); PIPE Row(spell_code('tong', -12888)); PIPE Row(spell_code('tou', -12875)); PIPE Row(spell_code('tu', -12871)); PIPE Row(spell_code('tuan', -12860)); PIPE Row(spell_code('tui', -12858)); PIPE Row(spell_code('tun', -12852)); PIPE Row(spell_code('tuo', -12849)); PIPE Row(spell_code('wa', -12838)); PIPE Row(spell_code('wai', -12831)); PIPE Row(spell_code('wan', -12829)); PIPE Row(spell_code('wang', -12812)); PIPE Row(spell_code('wei', -12802)); PIPE Row(spell_code('wen', -12607)); PIPE Row(spell_code('weng', -12597)); PIPE Row(spell_code('wo', -12594)); PIPE Row(spell_code('wu', -12585)); PIPE Row(spell_code('xi', -12556)); PIPE Row(spell_code('xia', -12359));

PIPE Row(spell_code('xiang', -12320)); PIPE Row(spell_code('xiao', -12300)); PIPE Row(spell_code('xie', -12120)); PIPE Row(spell_code('xin', -12099)); PIPE Row(spell_code('xing', -12089)); PIPE Row(spell_code('xiong', -12074)); PIPE Row(spell_code('xiu', -12067)); PIPE Row(spell_code('xu', -12058)); PIPE Row(spell_code('xuan', -12039)); PIPE Row(spell_code('xue', -11867)); PIPE Row(spell_code('xun', -11861)); PIPE Row(spell_code('ya', -11847)); PIPE Row(spell_code('yan', -11831)); PIPE Row(spell_code('yang', -11798)); PIPE Row(spell_code('yao', -11781)); PIPE Row(spell_code('ye', -11604)); PIPE Row(spell_code('yi', -11589)); PIPE Row(spell_code('yin', -11536)); PIPE Row(spell_code('ying', -11358)); PIPE Row(spell_code('yo', -11340)); PIPE Row(spell_code('yong', -11339)); PIPE Row(spell_code('you', -11324)); PIPE Row(spell_code('yu', -11303)); PIPE Row(spell_code('yuan', -11097)); PIPE Row(spell_code('yue', -11077)); PIPE Row(spell_code('yun', -11067)); PIPE Row(spell_code('za', -11055)); PIPE Row(spell_code('zai', -11052)); PIPE Row(spell_code('zan', -11045)); PIPE Row(spell_code('zang', -11041)); PIPE Row(spell_code('zao', -11038)); PIPE Row(spell_code('ze', -11024)); PIPE Row(spell_code('zei', -11020)); PIPE Row(spell_code('zen', -11019)); PIPE Row(spell_code('zeng', -11018)); PIPE Row(spell_code('zha', -11014)); PIPE Row(spell_code('zhai', -10838));

PIPE Row(spell_code('zhang', -10815));

PIPE Row(spell_code('zhao', -10800));

PIPE Row(spell_code('zhe', -10790));

PIPE Row(spell_code('zhen', -10780));

PIPE Row(spell_code('zheng', -10764));

PIPE Row(spell_code('zhi', -10587));

PIPE Row(spell_code('zhong', -10544));

PIPE Row(spell_code('zhou', -10533));

PIPE Row(spell_code('zhu', -10519));

PIPE Row(spell_code('zhua', -10331));

PIPE Row(spell_code('zhuai', -10329));

PIPE Row(spell_code('zhuan', -10328));

PIPE Row(spell_code('zhuang', -10322));

PIPE Row(spell_code('zhui', -10315));

PIPE Row(spell_code('zhun', -10309));

PIPE Row(spell_code('zhuo', -10307));

PIPE Row(spell_code('zi', -10296));

PIPE Row(spell_code('zong', -10281));

PIPE Row(spell_code('zou', -10274));

PIPE Row(spell_code('zu', -10270));

PIPE Row(spell_code('zuan', -10262));

PIPE Row(spell_code('zui', -10260));

PIPE Row(spell_code('zun', -10256));

PIPE Row(spell_code('zuo', -10254));

Return;

end;

--hanjs,07-10-24,返回拼音与代码的对应关系

/

--此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。

create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2

as

lv_spell varchar2(200);

lv_temp Varchar2(10);

lv_char varchar2(10);

--lv_bytes varchar2(100);

li_bytes Integer;

--li_pos Integer;

begin

if p_cnStr is null then

return '';

end if;

for i In 1..length(p_cnStr) loop

lv_char:=substr(p_cnStr,i,1);

if lengthb(lv_char) = 1 then

lv_spell:=lv_spell||lv_char;

elsif lengthb(lv_char) = 2 then

--Select

replace(substrb(dump(lv_char,1010),instrb(dump(lv_char,1010),'ZHS16GBK:') ),'ZHS16GBK: ','') Into lv_bytes from dual;

--li_pos:=instr(lv_bytes,',');

--li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256 *256;

Select ascii(lv_char)-256*256 Into li_bytes From dual;

select max(spell) Into lv_temp from table(f_getSpellcode) where

code<=li_bytes;

if p_sign is null then

lv_spell:=lv_spell||substr(lv_temp,1,1);

else

lv_spell:=lv_spell||lv_temp;

end if;

elsif lengthb(lv_char) = 3 then

--Select

replace(substrb(dump(convert(lv_char,'ZHS16GBK','UTF8'),1010),instrb(dum p(convert(lv_char,'ZHS16GBK','UTF8'),1010),'UTF8:')),'UTF8: ','') --Into lv_bytes from dual;

--li_pos:=instr(lv_bytes,',');

--li_bytes:=substr(lv_bytes,1,li_pos-1)*256+substr(lv_bytes,li_pos+1)-256 *256;

Select ascii(lv_char)-256*256 Into li_bytes From dual;

select max(spell) Into lv_temp from table(f_getSpellcode) where

code<=li_bytes;

if p_sign is null then

lv_spell:=lv_spell||substr(lv_char,1,1);

else

lv_spell:=lv_spell||lv_char;

end if;

end if;

end loop;

return lv_spell;

end;

--hanjs,07-10-24,此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。

/

第二种方法:首字母

Oracle的汉字转拼音首字母的函数

CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2AS

V_COMPARE VARCHAR2(100);

V_RETURN VARCHAR2(4000);

FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2AS

BEGIN

RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');

END;

BEGIN

FOR I IN1..NVL(LENGTH(P_NAME), 0) LOOP

V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));

IF V_COMPARE >= F_NLSSORT('吖') AND V_COMPARE <= F_NLSSORT('驁') THEN

V_RETURN := V_RETURN ||'A';

ELSIF V_COMPARE >= F_NLSSORT('八') AND V_COMPARE <= F_NLSSORT('簿') THEN V_RETURN := V_RETURN ||'B';

ELSIF V_COMPARE >= F_NLSSORT('嚓') AND V_COMPARE <= F_NLSSORT('錯') THEN V_RETURN := V_RETURN ||'C';

ELSIF V_COMPARE >= F_NLSSORT('咑') AND V_COMPARE <= F_NLSSORT('鵽') THEN V_RETURN := V_RETURN ||'D';

ELSIF V_COMPARE >= F_NLSSORT('妸') AND V_COMPARE <= F_NLSSORT('樲') THEN V_RETURN := V_RETURN ||'E';

ELSIF V_COMPARE >= F_NLSSORT('发') AND V_COMPARE <= F_NLSSORT('猤') THEN V_RETURN := V_RETURN ||'F';

ELSIF V_COMPARE >= F_NLSSORT('旮') AND V_COMPARE <= F_NLSSORT('腂') THEN V_RETURN := V_RETURN ||'G';

ELSIF V_COMPARE >= F_NLSSORT('妎') AND V_COMPARE <= F_NLSSORT('夻') THEN V_RETURN := V_RETURN ||'H';

ELSIF V_COMPARE >= F_NLSSORT('丌') AND V_COMPARE <= F_NLSSORT('攈') THEN V_RETURN := V_RETURN ||'J';

ELSIF V_COMPARE >= F_NLSSORT('咔') AND V_COMPARE <= F_NLSSORT('穒') THEN V_RETURN := V_RETURN ||'K';

ELSIF V_COMPARE >= F_NLSSORT('垃') AND V_COMPARE <= F_NLSSORT('擽') THEN V_RETURN := V_RETURN ||'L';

ELSIF V_COMPARE >= F_NLSSORT('嘸') AND V_COMPARE <= F_NLSSORT('椧') THEN V_RETURN := V_RETURN ||'M';

ELSIF V_COMPARE >= F_NLSSORT('拏') AND V_COMPARE <= F_NLSSORT('瘧') THEN V_RETURN := V_RETURN ||'N';

ELSIF V_COMPARE >= F_NLSSORT('筽') AND V_COMPARE <= F_NLSSORT('漚') THEN V_RETURN := V_RETURN ||'O';

ELSIF V_COMPARE >= F_NLSSORT('妑') AND V_COMPARE <= F_NLSSORT('曝') THEN V_RETURN := V_RETURN ||'P';

ELSIF V_COMPARE >= F_NLSSORT('七') AND V_COMPARE <= F_NLSSORT('裠') THEN V_RETURN := V_RETURN ||'Q';

ELSIF V_COMPARE >= F_NLSSORT('亽') AND V_COMPARE <= F_NLSSORT('鶸') THEN V_RETURN := V_RETURN ||'R';

ELSIF V_COMPARE >= F_NLSSORT('仨') AND V_COMPARE <= F_NLSSORT('蜶') THEN V_RETURN := V_RETURN ||'S';

ELSIF V_COMPARE >= F_NLSSORT('侤') AND V_COMPARE <= F_NLSSORT('籜') THEN V_RETURN := V_RETURN ||'T';

ELSIF V_COMPARE >= F_NLSSORT('屲') AND V_COMPARE <= F_NLSSORT('鶩') THEN V_RETURN := V_RETURN ||'W';

ELSIF V_COMPARE >= F_NLSSORT('夕') AND V_COMPARE <= F_NLSSORT('鑂') THEN V_RETURN := V_RETURN ||'X';

ELSIF V_COMPARE >= F_NLSSORT('丫') AND V_COMPARE <= F_NLSSORT('韻') THEN V_RETURN := V_RETURN ||'Y';

ELSIF V_COMPARE >= F_NLSSORT('帀') AND V_COMPARE <= F_NLSSORT('咗') THEN V_RETURN := V_RETURN ||'Z';

END IF;

END LOOP;

RETURN V_RETURN;

END;

c语言汉字转拼音函数源码

c语言汉字转拼音函数源码 在做一些MIS系统,尤其是人事相关的系统时,通常会用到需要将用户的姓名,转成汉语拼音的情形。现在,把这个的实现分享出来,源代码来源网上,由于是很早收集的,原作者已不详,就不标注了。核心代码如下: /// <summary> /// 完整转换函数,输出全拼的结果 /// </summary> /// <param name="CnString">传入的中文字符串 </param> /// <returns>转换出的拼音组合</returns> public static string FullConvert(string CnString) { byte[] btArray = new byte[2]; int cAscii = 0; short idx1, idx2; StringBuilder sbResult = new StringBuilder(); ch ar[] tempCArray = CnString.ToCharArray(); for (int idx = 0; idx < tempCArray.Length; idx++) { btArray =

Encoding.Default.GetBytes(tempCArray[idx].ToString()); if (btArray.Length == 1) sbResult.Append(tempCArray[idx]); else { idx1 = (short)btArray[0]; idx2 = (short)btArray[1]; cAscii = idx1 * 256 + idx2 - 65536; if (cAscii > 0 && cAscii < 160) sbResult.Append(tempCArray[idx]); else { for (int i = pyValueArr.Length - 1; i >= 0; i--) { if (pyValueArr[i] <= cAscii) { sbResult.Append(pyCharacterArr[i]); break; }

oracle函数

许多软件公司都理解开发不依赖于特定数据库类型(例如Oracle、SQL Server、DB2)的应用程序的重要性,它可以让客户们选择自己习惯的平台。一般来说,软件开发人员都能够识别出他们的负责数据库维护的客户,和必须使用现有平台和个性化的客户。 关于Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别。在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法。与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引。 定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库,想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的,这是一家志愿者成员的组织(用私人基金运转),他们在有关设备和程序等广泛领域内开发了国家承认的标准。在数据库领域, ANSI定义了编写SQL命令的标准,假设命令可以运行在任何的数据库上,而不需要更改命令的语法。 ODBC是开放数据库连接(ODBC)接口,微软定义的,它可以让应用程序访问数据库管理系统(DBMS)中的数据,使用SQL作为访问数据的标准。 ODBC允许最大的互联性,这意味着一个单个的应用程序可以访问不同的数据库管理系统。然后,应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上。 OLE DB 是ODBC的继承者,是一组允许例如基于VB、C++、Access等任何可以连接到类似SQL Server、Oracle、DB2、MySQL等后台的“前台”的软件组件。在许多种情况下,OLE DB组件都比原有的ODBC提供了好得多的性能。 JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库,SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间,进行不依赖于数据库的连接的行业标准。JDBD应用程序接口为基于SQL的数据库访问提供了调用级别的应用程序接口。真实世界中的通用接口不幸的是,并不是所有数据库级别的命令都是ANSI,每个数据库平台都有自己的扩展功能。对于ANSI或者通用接口,一般来说都代表着几本功能,因此也可能意味着丧失了性能方面的竞争力。对于小型数据库和小型应用程序来说,要维护对数据库的通用访问是简单的,但是当数据库和/或应用程序变得越来越大,越来越复杂,你就不得不向代码中添加功能。 SQL Server和Oracle的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual

宏-汉字转换拼音

公司要建DataBase,为了让老外们看明白,所以要吧中文店名全部转换成拼音。 5000多家,搞得头好晕,所以请教了下高手,发现了VBA的一个小技巧,分享给大家, 希望大家有用哦::P 具体方法如下: 打开Excel->Tools->Macro(宏)->Viaual Basic编辑器 点击插入->Module(模块) 然后会出现一个Module1,空白栏中粘贴以下内容: Option Explicit Option Compare Text Public Function HZQP(expression As String, Optional delimiter As String = " ", Optional limit As Integer = -1) As String 'expression ' 必需的?包含要转换的字符串? 'delimiter ' 可选的。用于标识分隔拼音的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回仅包含一个元素,即完整的expression字符串。 'limit ' 可选的。要返回拼音字符数,–1表示返回所有的拼音字符数,1表示返回拼音首字母。 Dim STR As String, arrWord(400) As String Dim i As Integer, j As Integer arrWord(1) = "吖a" arrWord(2) = "哎ai" arrWord(3) = "腤an" arrWord(4) = "肮ang" arrWord(5) = "凹ao" arrWord(6) = "八ba" arrWord(7) = "挀bai" arrWord(8) = "扳ban" arrWord(9) = "邦bang" arrWord(10) = "勹bao" arrWord(11) = "陂bei" arrWord(12) = "奔ben"

Oracle 常见函数(一)——数值函数

Oracle常见数值函数 ----***特别说明***: x 可以是纯的数值,也可以是数值型表达式/* ABS(x)返回x绝对值 eg. */ selectabs(100),abs(-100) from dual; /* sign(x)判断x的正负,正数返回1,负数返回-1,0返回0; eg. */ selectsign(100),sign(-100),sign(0) from dual;

/* round(x[,n])对x进行四舍五入,保留n位小数,其中n采用其整数部分; 没有n时默认四舍五入到整数位,n为负数时,四舍五入保留小数点左边n位(补零), eg. */ selectround(5555.6666, 2.1), round(5555.6666, -2.6), round(5555.6666) from dual; /* trunc(x)对x进行直接截取,保留n位小数,其中n采用其整数部分; 没有n时默认截取到整数位,n为负数时,截取保留小数点左边n位(补零), eg. */ selecttrunc(5555.66666,2.1), trunc(5555.66666,-2.6), trunc(5555.033333) from dual; /* ceil(x)对x进行向上取整,返回不小于x的最小整数(可以是整数x本身)。

eg. */ selectceil(3.1), ceil(2.8+1.3), ceil(0) from dual; /* floor(x)对x进行向下取整,返回不大于x的最大整数(可以是整数x本身)。eg. */ selectfloor(3.1), floor(2.8+1.3), floor(0) from dual; /* mod(x,y)求x除以y的余数,x,y为数字型表达式。 eg. */ selectmod(23,8),mod(24,8) from dual;

在excel中把汉字转换成拼音只取首字母修订版

在e x c e l中把汉字转换成拼音只取首字母修订 版 IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】

打开Excel->工具->宏->Viaual Basic编辑器 在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20284: pinyin = "A" Case -20283 To -19776: pinyin = "B" Case -19775 To -19219: pinyin = "C"

Case -19218 To -18711: pinyin = "D" Case -18710 To -18527: pinyin = "E" Case -18526 To -18240: pinyin = "F" Case -18239 To -17923: pinyin = "G" Case -17922 To -17418: pinyin = "H" Case -17417 To -16475: pinyin = "J" Case -16474 To -16213: pinyin = "K" Case -16212 To -15641: pinyin = "L" Case -15640 To -15166: pinyin = "M"

Case -15165 To -14923: pinyin = "N" Case -14922 To -14915: pinyin = "O" Case -14914 To -14631: pinyin = "P" Case -14630 To -14150: pinyin = "Q" Case -14149 To -14091: pinyin = "R" Case -14090 To -13319: pinyin = "S" Case -13318 To -12839: pinyin = "T" Case -12838 To -12557: pinyin = "W" Case -12556 To -11848: pinyin = "X" Case -11847 To -11056: pinyin = "Y"

oracle汉字转拼音函数

第一种方法:(首字母/全拼) create or replace type spell_code as object(spell varchar2(10),code number); create or replace type t_spellcode is table of spell_code; --返回拼音与代码的对应关系 create or replace function f_getSpellcode return t_spellcode Pipelined is Begin PIPE Row(spell_code('a', -20319)); PIPE Row(spell_code('ai', -20317)); PIPE Row(spell_code('an', -20304)); PIPE Row(spell_code('ang', -20295)); PIPE Row(spell_code('ao', -20292)); PIPE Row(spell_code('ba', -20283)); PIPE Row(spell_code('bai', -20265)); PIPE Row(spell_code('ban', -20257)); PIPE Row(spell_code('bang', -20242)); PIPE Row(spell_code('bao', -20230)); PIPE Row(spell_code('bei', -20051)); PIPE Row(spell_code('ben', -20036)); PIPE Row(spell_code('beng', -20032)); PIPE Row(spell_code('bi', -20026)); PIPE Row(spell_code('bian', -20002)); PIPE Row(spell_code('biao', -19990)); PIPE Row(spell_code('bie', -19986)); PIPE Row(spell_code('bin', -19982)); PIPE Row(spell_code('bing', -19976)); PIPE Row(spell_code('bo', -19805)); PIPE Row(spell_code('bu', -19784)); PIPE Row(spell_code('ca', -19775)); PIPE Row(spell_code('cai', -19774)); PIPE Row(spell_code('can', -19763)); PIPE Row(spell_code('cang', -19756)); PIPE Row(spell_code('cao', -19751)); PIPE Row(spell_code('ce', -19746)); PIPE Row(spell_code('ceng', -19741)); PIPE Row(spell_code('cha', -19739));

Oracle函数详解(经典)

Oracle常用函数/过程说明主要介绍Oracle的系统函数、过程和包。 SQL常用函数: 数值函数: ABS Purpose 返回绝对值 Returns the absolute value of n. Example SELECT ABS(-15) "Absolute" FROM DUAL; Absolute ---------- 15 CEIL Purpose 取最小整数 Returns smallest integer greater than or equal to n. Example SELECT CEIL(15.7) "Ceiling" FROM DUAL;

Ceiling ---------- 16 * MOD Syntax MOD(m,n) Purpose 取余 Returns remainder of m divided by n. Returns m if n is 0. Example SELECT MOD(11,4) "Modulus" FROM DUAL; Modulus ---------- 3 * ROUND Syntax ROUND(n[,m]) Purpose 取四舍五入信息 Returns n rounded to m places right of the decimal point; if m is omitted, to 0 places. m can be negative to round off digits left of the decimal point. m must be an integer.

宏 拼音转汉字

Option Explicit Option Compare Text Public Function HZQP(expression As String, Optional delimiter As String = " ", Optional limit As Integer = -1) As String 'expression ' 必需的?包含要转换的字符串? 'delimiter ' 可选的。用于标识分隔拼音的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回仅包含一个元素,即完整的 expression字符串。 'limit ' 可选的。要返回拼音字符数,–1表示返回所有的拼音字符数,1表示返回拼音首字母。 Dim STR As String, arrWord(400) As String Dim i As Integer, j As Integer arrWord(1) = "吖a" arrWord(2) = "哎ai" arrWord(3) = "腤an" arrWord(4) = "肮ang" arrWord(5) = "凹ao" arrWord(6) = "八ba" arrWord(7) = "挀bai" arrWord(8) = "扳ban" arrWord(9) = "邦bang" arrWord(10) = "勹bao" arrWord(11) = "陂bei" arrWord(12) = "奔ben" arrWord(13) = "崩beng" arrWord(14) = "皀bi" arrWord(15) = "边bian" arrWord(16) = "杓biao" arrWord(17) = "憋bie" arrWord(18) = "邠bin" arrWord(19) = "仌bing" arrWord(20) = "拨bo" arrWord(21) = "峬bu" arrWord(22) = "嚓ca" arrWord(23) = "猜cai" arrWord(24) = "飡can" arrWord(25) = "仓cang" arrWord(26) = "撡cao" arrWord(27) = "冊ce" arrWord(28) = "嵾cen" arrWord(29) = "噌ceng" arrWord(30) = "*cha"

汉字转化为拼音程序代码

原理,使用Dictionary技术 1.添加索引 2.遍历词典 <% Set d = CreateObject("Scripting.Dictionary") d.add "a",-20319 d.add "ai",-20317 d.add "an",-20304 d.add "ang",-20295 d.add "ao",-20292 d.add "ba",-20283 d.add "bai",-20265 d.add "ban",-20257 d.add "bang",-20242 d.add "bao",-20230 d.add "bei",-20051 d.add "ben",-20036 d.add "beng",-20032 d.add "bi",-20026 d.add "bian",-20002 d.add "biao",-19990 d.add "bie",-19986 d.add "bin",-19982 d.add "bing",-19976 d.add "bo",-19805 d.add "bu",-19784 d.add "ca",-19775 d.add "cai",-19774 d.add "can",-19763 d.add "cang",-19756 d.add "cao",-19751 d.add "ce",-19746 d.add "ceng",-19741 d.add "cha",-19739 d.add "chai",-19728 d.add "chan",-19725 d.add "chang",-19715 d.add "chao",-19540 d.add "che",-19531 d.add "chen",-19525 d.add "cheng",-19515 d.add "chi",-19500 d.add "chong",-19484

ORACLE常用函数和一些项目中常用的SQL语句

Oracle笔记 实现中英文转换 Alter session set nls_language=‘ADMIN’ 从已知表中复制数据和结构 Create table test as select * from dept; 从已知表中复制数据和结构,但是不包括数据 Create table test as select * from dept where 1=2 插入数据 Insert into test select * from dept 二、运算符 +——*/可以在select 语句中使用 ||连接两个字段,select deptno ||dname from dept 比较运算付:> >= = !=< <= 逻辑运算符:not ,or 集合运算符:intersect,union,union all,minus, 使用ord er by 的时候必须使用位置序号,不能使用列名 Select *from emp intersect select * from emp where deptno=10; Select *from emp minus select * from emp where deptno=10; ---不包括重复行 Select *from emp where deptno=10 union select * from emp where deptno in(10,20);----包括重复行 Select *from emp where deptno=10 union all select * from emp where deptno in(10,20); 三、常用ORACLE函数

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

把汉字转换成拼音

把汉字转换成拼音 录入学生资料时需要输入姓名的汉字拼音,但怎样才能把姓名转换成拼音呢? 1、先把EXCEL中的学生姓名复制,再打开WORD,然后右键“选择性粘贴”,选择“无格式文 本”后确定。 2、再全选刚才学生的姓名,点击WORD中的“格式”菜单栏,找到“中文版式”里面的“拼音指 南”,(图1),可以把其中的“字号”由“5”设置大一些,如设置为“20”等后,然后“确定”,一次转换不成,可以再次转换,要注意一次可能转换不了,要多次才行。转换后效果,如(图2)。 3、全选所有的文字,右键选择“切换域代码”,出现如(图3)的文字,点击“编辑”菜单栏,找 到“查找(替换)”,切换到“替换”,在“查找内容”处输入:[)]*[)](注意是半角状态下的符号。),在“替换为”处输入:一个半角状态下的空格,然后点击下面的“高级”,在“使用通配符”打上“√”,最后点击“全部替换”。 4、接着用同样的方法,在“查找内容”处输入:EQ*[(]*[(](注意是半角状态下的符号。), 在“替换为”处输入:EQ ,(注意:EQ后还有一个半角状态下的空格)(图4),然后“全部替换”。效果如(图5),然后右键再选择“切换域代码”,剩下拼音。 5、全选所有拼音,复制后,新建一个EXCEL文档,按右键“选择性粘贴”,即可把汉字转换 成拼音。 图1 图2 图3

6、复制刚才的拼音到EXCEL 里,在EXCEL 中选择“编辑”,找到“定位”,点击“定位条件”,在里面选择“空值”后“确定”,对着其中已经选择的空格,右键“删除”,选择“下方单元格上移”后确定,即可把拼音复制到对应的姓名右边。 图4 图5 图6

excel 汉字转换成拼音全拼&excel 汉字转换成拼音简拼(只取首字母)

Excel自定义函数方法: 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表; 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态; 3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态; 4.将代码输入其中; 5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态; 6.自定义函数就可以用了,如:选中D2单元格,输入公式:=getpy(A2)。 有极个别的汉字不能转换,手动就可以了!很方便了。 Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai "

Oracle常用函数及使用案例(珍藏版)

Oracle常用函数及使用案例(珍藏版) 一:sql函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char,m,n):取字符串的字串。 案例1.将所有员工的名字按小写的方式显示 select lower(ename),sal from emp; 案例2.将所有员工的名字按大写的方式显示。 select upper(ename),sal from emp; 案例3.显示正好为五个字符的的员工的姓名。 select * from emp where length(ename)=5; 案例4.显示所有员工姓名的前三个字符。 select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。 案例5.以首字母为大写的方式显示所有员工的姓名。 (1)首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp; 案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路) (1)首字母小写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp; 案例7.函数(替换):replace(char1,search_string,replace_string); 显示所有员工的姓名,用“我要替换A”替代所有“A”。 select replace(ename,'A','我是老鼠')from emp; 案例8.以首字母为小写的方式显示所有员工的姓名。 select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp; 案例9.以首字母为大写的方式显示所有员工的姓名。 Select replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp; 二:数学函数:(在财务中用的比较多) ronud(sal)用于四舍五默认取整; ronud(sal,1)用于四舍五留一位小数。 trunc(sal)取整,忽略小数。截去小数部分。 trunc(sal,1)截取;小数点留一位,之后的右边的省去。 trunc(sal,-1)截取;只留整数,个位数取零。 floor(sal)向下最接近取整;比如1.1值为1.

excel汉字转换成拼音简拼(只取首字母)

打开Excel->工具->宏->Viaual Basic编辑器 在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20284: pinyin = "A" Case -20283 To -19776: pinyin = "B" Case -19775 To -19219: pinyin = "C" Case -19218 To -18711: pinyin = "D" Case -18710 To -18527: pinyin = "E" Case -18526 To -18240: pinyin = "F" Case -18239 To -17923: pinyin = "G" Case -17922 To -17418: pinyin = "H" Case -17417 To -16475: pinyin = "J" Case -16474 To -16213: pinyin = "K" Case -16212 To -15641: pinyin = "L" Case -15640 To -15166: pinyin = "M" Case -15165 To -14923: pinyin = "N" Case -14922 To -14915: pinyin = "O" Case -14914 To -14631: pinyin = "P"

oracle常用函数列表速查 (1)

Oracle常用函数列表速查 PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则。 SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY 等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。 SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename) 单行函数也可以在其他语句中使用,如update的SET子句,INSERT的V ALUES子句,DELET 的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数,所以我们的注意力也集中在SELECT语句中。 NULL和单行函数 在如何理解NULL上开始是很困难的,就算是一个很有经验的人依然对此感到困惑。NULL值表示一个未知数据或者一个空值,算术操作符的任何一个操作数为NULL值,结果均为提个NULL值,这个规则也适合很多函数,只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。在这些中NVL函数时最重要的,因为他能直接处理NULL值,NVL有两个参数:NVL(x1,x2),x1和x2都式表达式,当x1为null时返回X2,否则返回x1。 下面我们看看emp数据表它包含了薪水、奖金两项,需要计算总的补偿 column name emp_id salary bonuskey type pk nulls/unique nn,u nnfk table datatype number number numberlength 11.2 11.2 不是简单的将薪水和奖金加起来就可以了,如果某一行是null值那么结果就将是null,比如下面的例子: update empset salary=(salary+bonus)*1.1 这个语句中,雇员的工资和奖金都将更新为一个新的值,但是如果没有奖金,即salary + null,那么就会得出错误的结论,这个时候就要使用nvl函数来排除null值的影响。 所以正确的语句是: update empset salary=(salary+nvl(bonus,0)*1.1

Excel中将汉字转化为拼音

Excel中将汉字转化为拼音(完整拼音)版 1.打开Excel->工具->宏->Viaual Basic编辑器 2.在弹出来的窗口中对着VBAproject点右键->插入->模块 3.下面会出现一个名为"模块1",点击 4.在右边的空白栏中粘贴以下内容: Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai " Case -19725 To -19716: pinyin = "chan " Case -19715 To -19541: pinyin = "chang " Case -19540 To -19532: pinyin = "chao " Case -19531 To -19526: pinyin = "che "

如何在excel中把汉字转换成拼音

Excel自定义函数法: 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表; 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态; 3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态; 4.将代码输入其中; 5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态; 6.自定义函数就可以用了,如:选中D2单元格,输入公式:=getpy(A2)。 有极个别的汉字不能转换,手动就可以了!很便了。 Function pinyin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin = "a " Case -20317 To -20305: pinyin = "ai " Case -20304 To -20296: pinyin = "an " Case -20295 To -20293: pinyin = "ang " Case -20292 To -20284: pinyin = "ao " Case -20283 To -20266: pinyin = "ba " Case -20265 To -20258: pinyin = "bai " Case -20257 To -20243: pinyin = "ban " Case -20242 To -20231: pinyin = "bang " Case -20230 To -20052: pinyin = "bao " Case -20051 To -20037: pinyin = "bei " Case -20036 To -20033: pinyin = "ben " Case -20032 To -20027: pinyin = "beng " Case -20026 To -20003: pinyin = "bi " Case -20002 To -19991: pinyin = "bian " Case -19990 To -19987: pinyin = "biao " Case -19986 To -19983: pinyin = "bie " Case -19982 To -19977: pinyin = "bin " Case -19976 To -19806: pinyin = "bing " Case -19805 To -19785: pinyin = "bo " Case -19784 To -19776: pinyin = "bu " Case -19775 To -19775: pinyin = "ca " Case -19774 To -19764: pinyin = "cai " Case -19763 To -19757: pinyin = "can " Case -19756 To -19752: pinyin = "cang " Case -19751 To -19747: pinyin = "cao " Case -19746 To -19742: pinyin = "ce " Case -19741 To -19740: pinyin = "ceng " Case -19739 To -19729: pinyin = "cha " Case -19728 To -19726: pinyin = "chai "

相关文档
最新文档