oracle 括号全角转半角,全角转换半角,该怎么处理

当前位置:我的异常网» Oracle开发 » 全角转换半角,该怎么处理

全角转换半角,该怎么处理

www.myexceptions.net  网友分享于:2013-01-07  浏览:320次

全角转换半角

RT

如何将一个字符串中的所有的全角假名转换成半角假名。

例如:

输入:"1あア2"

变成:"1ぁア2"

那位大侠,帮帮小弟。

------解决方案--------------------

ORACLE 全角数字转半角数字

数据库表 test 字段 id name age

全角数字:123456

半角数字:123456

length和lengthb的区别:

length(123456) 6

lengthb(123456) 12

to_single_byte函数用法:

to_single_byte(123456) 123456

查找所有全角的数字:

select age from test where lengthB(age) >6

替换全角的为半角的:

update test t1 set t1.age = (select to_single_byte(t2.age) from test t2 where t1.id = t2.id)

ok!!

------解决方案--------------------

1.ORACLE自带的函数可以转换标点符号;

2.fn_knachg函数为转换全半角函数

参数:pKna为要转换的字符串;

pPara:1为半角 → 全角;

2为全角 → 半角。

string findSQL = "";

string query = "abc";

findSQL = "SELECT count(*) cout from test1 where fn_knachg(TO_MULTI_BYTE(test),1) like '%'||fn_knachg(TO_MULTI_BYTE('" + query + "'),1)||'%'";

CREATE OR REPLACE FUNCTION fn_knachg(pKna IN VARCHAR2, pPara IN VARCHAR2) RETURN VARCHAR2 IS

TYPE t_Zen1 IS varray(95) of VARCHAR2(2);

tZen1 t_Zen1 := t_Zen1('ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ',

'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ',

'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ',

'ン', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ', 'ー', '、', '。', '・', '」',

'「', '゛', ' ', ',', '<', '.', '>', '/', '?', '_', '}', ']', '*', ':', '+',

';', '{', '[', ' ̄', '@', '|', '¥', '`', '^', '=', '-', ')', '(', '&', '%',

'$', '#', '”', '!', '’');

TYPE t_Han1 IS varray(95) of VARCHAR2(2);

tHan1 t_Han1 := t_Han1('ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ',

'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ',

'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ',

'ン', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ', 'ー', '、', '。', '・', '」',

'「', '゙', ' ', ',', '', '/', '?', '_', '}', ']', '*', ':', '+',

';', '{', '[', '~', '@', '|', '\', '`', '^', '=', '-', ')', '(', '&', '%',

'$', '#', '"', '!', '''');

文章评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值