扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)效果如下: Oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下Sql代码
创新互联建站专注于漳浦网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供漳浦营销型网站建设,漳浦网站制作、漳浦网页设计、漳浦网站官网定制、小程序制作服务,打造漳浦网络公司原创品牌,更为您提供漳浦网站排名全网营销落地服务。
--oracle汉字转拼音 PACKAGE
--1.获得全拼
SELECT GETHZPY.GETHZFULLPY('汉字') FROM DUAL;结果 : HanZi
--2.拼音首字母
SELECT GETHZPY.GETHZPYCAP('汉字') FROM DUAL;结果 : HZ
--3.拼音截取等
SELECT GETHZPY.GETHZPYCAPSUBSTR('汉字', 0, 1) FROM DUAL;结果 : H
代码部分太长挂在附件上 以下代码如果在 PL/SQL Developer 执行的话,选择 Command Window 粘贴.
附件在最下面.
oracle汉字转拼音package_获得全拼——拼音首字母_拼音截取等.zip (35.9 KB)
楼上说的没错,做同义词就能解决owner user前缀。具体步骤如下:
1、先登入department表的owner user,授予必要的权限。
例:grant select on department to public;
2、登入sys或system用户,创建同义词。
例:create public synonym department for hr.department;
3、登入任意一个用户都可按select * from department语句查询。
--ORACLE 10G及以上可以简单的应用如下正则表达式,参数1是你的原串,参数二表示从开始匹配多个0,参数三就是替换的内容,提换为你想要的 如 1个0,几个0,或其它
既然是3个0那就修改为这样了
SELECT REGEXP_REPLACE('0005xxxxxx', '^0{3}, '') FROM DUAL;
或者3个以上保留一个的话就
ECT REGEXP_REPLACE('0000005xxxxxx', '^0{3,}, '0') FROM DUAL;
如果字符串只有开头有零,而字符串中间没有0,那么可以使用replace(字符串,'0','')
如果0开头最长的位数不长,那么可以逐个判断。
比如我可能知道这里面最长的就是连续5个0开头的,这样我就判断如果遇到5个0开头的就截掉前五位,4个0开头截掉前四位,3个0开头截掉前三位,一直到1,逐个判断使用case when可以完成.但是如果最长的0开头个数不确定,就比较麻烦了。
这个就靠Oracle是做不到的吧?
有个方法:
1)你用Windows 2000/XP自带的输入法生成器,可以得到一个 拼音汉字的对应关系文本文件
2)将上一步的文本文件处理后导入oracle的表
3)然后就好办了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流