oracle的convert函数也可以实现简繁转换,但是经测试存在一些问题,有些字转不了,比如‘宣佈’,所以自己写了一个简单的,可以实现字字对应的简繁转换。(convert函数能够实现部分的简繁转换已经很牛逼了!)

代码尾部附带一大一小两个字库,小的600多,大的3000多,请各位根据需求和执行效率自行选择,也可以在小库的基础上一步一步增加自己需要的字体。

CREATE OR REPLACE FUNCTION FN_SC_TC(OLD_STRING in VARCHAR2,FUN_TYPE in NUMBER := 1)
--OLD_STRING为要转的字符串,FUN_TYPE为转换方式,1为繁转简,2为简转繁,默认繁转简
RETURN VARCHAR2 AS
--简体字库,必须与繁体字库一一对应,详细的字库见末尾
V_SC_LIST constant LONG := '爱碍袄肮罢坝';
--繁体字库,必须与简体字库一一对应,详细的字库见末尾
V_TC_LIST constant LONG := '愛礙襖骯罷壩';
V_NEW_STRING varchar2(2000);--将要返回的新字符串
V_LENGTH NUMBER(12) := length(OLD_STRING);--字符串总长度
V_INDEX  Number(12) := 1;--字符串的游标
V_TEMP Number(12) := 0;--繁体中文对应简体中文在LIST中的位置
V_FROM LONG := V_TC_LIST;--不知道这样搞一下,constant还有没有优化的效果了
V_TO LONG := V_SC_LIST;
BEGIN
IF FUN_TYPE = 2 THEN --简体转繁体
V_FROM := V_SC_LIST;
V_TO := V_TC_LIST;
END IF;
LOOP
IF V_INDEX <= V_LENGTH THEN--遍历整个字符串
V_TEMP := INSTR(V_FROM,substr(OLD_STRING,V_INDEX,1));--查找某个字符是否是繁体字
IF V_TEMP <> 0 THEN--若是繁体字
--使用简体字库对应的简体字替换该繁体字
V_NEW_STRING := V_NEW_STRING || substr(V_TO,V_TEMP,1);
V_TEMP := 0;
ELSE
V_NEW_STRING := V_NEW_STRING || substr(OLD_STRING,V_INDEX,1);
END IF;
V_INDEX := V_INDEX + 1;
ELSE
EXIT;
END IF;
END LOOP;
return V_NEW_STRING;
END FN_SC_TC;

大字库必需要将每行分开,不然在执行的时候可能会报ORA-06502的错误,并且因其长度超过了PL\SQL编辑框的限制,显示的时候会有文字解码错误的BUG。

相关错误描述请见:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 错误分析

若各位有相关的建议或想法,欢迎讨论

ORACLE简繁转换函数相关推荐

  1. 【叶子函数分享三十】SQL简繁转换函数

    --原帖地址:http://blog.csdn.net/htl258/archive/2010/04/20/5506045.aspx --全部的简繁对照 declare @jall nvarchar( ...

  2. javascript简繁转换函数

    javascript简繁转换函数 function bodytojt(x) {//繁体转换为简体  var bodys=document.getElementById(x);  bodys.inner ...

  3. php网页文字,PHP语言之网页文字简繁转换函数

    本文主要向大家介绍了PHP语言之网页文字简繁转换函数,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. function isgb($code) { if (strlen($code)&g ...

  4. SQL Server:简繁转换

    代码 --全部的简繁对照 declare @jall nvarchar(4000),@fall nvarchar(4000) select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸 ...

  5. java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...

    一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...

  6. js搞定网页的简繁转换

    对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...

  7. C#:调用API实现简繁转换

    C#:调用API实现简繁转换 知识要点: 1.LCMapString函数的功能与使用,具体查阅MSDN. 2.C#中如何调用API函数.C#2005中使用DllImport关键字,以及引用System ...

  8. vim里对文本进行简繁转换

    最近做的一个项目里需要把原本全部是简体中文的文件转换为繁体中文.vim是没有这个功能的,记得有个编辑器是有这个功能,忘了是Notepad++还是UtrlEdit什么的了.咱也不羡慕,vim scrip ...

  9. CVCode简繁转换的扩展:GBK与Big5转换

    CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的.   较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保 ...

最新文章

  1. 技术图文:如何利用BigOne的API制作自动化交易系统 -- 获取账户资产
  2. YOLO发展史(v4/v5的创新点汇总!)
  3. [delphi]参数带有默认值的函数
  4. c#oracle数据库操作类,Oracle数据库操作类(c#)
  5. 《怎样成为一个高手》观后感
  6. 【lua学习】3.字符串
  7. 算法训练营 重编码_您在编码训练营期间可能面临的最大挑战
  8. Linux下安装多个Tomcat服务器
  9. 思科路由器OSPF配置实例
  10. 对程序员而言,学历重要吗?
  11. 聚焦应对最新网络安全挑战,2022 BLACK HAT- OMDIA分析师大会报告开放申请
  12. BGP和BGP机房各为什么?优势在哪?
  13. 5.RefineDNet论文阅读
  14. PVE 天龙八部TLBB服务端搭建(一)--linux环境搭建
  15. 【图解】什么是拥塞控制,这应该是把拥塞控制讲的最好的文章了
  16. 卫哲:99%创业者在这3方面经常会犯错误
  17. lua 自实现pairs
  18. Win7 TAP-Windows Adapter V9提示Windows 要求已数字签名的驱动程序
  19. 百度2015校园招聘面试题(成功拿到offer)
  20. c++序列号生成(注册码)附demo

热门文章

  1. 【转载】XML轻松学习手册
  2. 微型计算机主板上的主要部件,微型计算机主板上安装的主要部件
  3. rsocket-cpp 编译
  4. 波动方程——弦的横振动(牛顿第二定律+胡克定律)| 偏微分方程(二)
  5. A3双面折页打印文件
  6. 使用两台服务器做负载均衡(nginx版)
  7. 查看网页源代码和框架源代码的区别
  8. 利用Python批量下载必由学答题卡
  9. python矩阵左除_miniWiki/octave.md at master · pvcStillInGradSchool/miniWiki · GitHub
  10. PHP怎么做成Qq空间相册,qq空间如何上传本地视频 相片制作视频传到QQ空间