TYPE t_Zen3 IS varray(5) of VARCHAR2(2);
tZen3 t_Zen3 := t_Zen3('ヮ', 'ヰ', 'ヱ', 'ヵ', 'ヶ');
TYPE t_Han3 IS varray(5) of VARCHAR2(2);
tHan3 t_Han3 := t_Han3('ワ', 'イ', 'エ', 'カ', 'ケ');
sKna varchar2(4000);
i int;
BEGIN
sKna := pKna;
if pPara = '1' then -- 半角 → 全角
for i in 1..26 loop
sKna := replace(sKna, tHan2(i), tZen2(i));
end loop;
for i in 1..95 loop
sKna := replace(sKna, tHan1(i), tZen1(i));
end loop;
sKna := to_multi_byte(sKna);
elsif pPara = '2' then -- 全角 → 半角
for i in 1..26 loop
sKna := replace(sKna, tZen2(i), tHan2(i));
end loop;
for i in 1..95 loop
sKna := replace(sKna, tZen1(i), tHan1(i));
end loop;
for i in 1..5 loop
sKna := replace(sKna, tZen3(i), tHan3(i));
end loop;
sKna := to_single_byte(sKna);
end if;
return sKna;