`
dycsos123ok
  • 浏览: 82832 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

*****Oracle中的全角与半角转换*****

阅读更多

说明:Oracle表中的数据的全角与半角问题,现在处理起来已经不那么麻烦了,这里主要说明一下小细节,以便日后提醒自己,处理所用到的两个函数:

to_single_byte(tablename) ---转成半角
to_multi_byte(tablename) -----转成全角

 

例如下面一张表:

create table books(
    bid varchar2(15), --ID
    bname varchar2(50) not null , --书名
    bauthor varchar2(15) not null,--作者
    bname_pym varchar2(50) , 
    bauthor_pym varchar2(15),
    bpublic varchar2(50)
) ;

  

假如里面的书名被录入了很多全角字段,需要转换成半角方便以后查询,你会考虑到

update books set bname_pym = to_single_byte(bname) ;

 

 这里暂不考虑性能问题,全表更新;但是你会发现执行完全角并没有被更新,当时第一次碰到也蛮奇怪,下面写法就没有问题

 

declare 
    name varchar2(100) ; 
begin .
.................... 
    nmae:=to_single_byte(bname) ; 
..................... 
    update books set bname_pym = nmae; 
..................... 


 

 这段代码是伪代码,但这样写就不会有问题,后来经同事提醒考虑一下,原来to_single_byte这个函数返回的并不是字符(如果用过Java,可以理解成Object),所以需要强制转换一下,如下

update books set bname_pym = to_char(to_single_byte(bname)) ; 

 

 这样写就不会有问题,并且完成了转换的功能。

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    全角数据转换为半角

    本文将深入探讨“全角数据转换为半角”的知识点,包括全角与半角的概念、SQL实现方法以及实际应用中的注意事项。 ### 全角与半角概念 全角(Full-width)与半角(Half-width)是根据字符宽度来划分的两种字符类型...

    Oracle全角数字转换半角数字

    本篇文章将详细介绍全角数字与半角数字的区别,以及在Oracle数据库中如何进行转换。 全角数字和半角数字的主要区别在于它们占用的字节空间不同。全角数字是Unicode字符集中的数字,每个数字占用两个字节,而半角...

    oracle日语片假名转平假名函数

    在日语中,全角字符通常用于正式书写和打印,以与半角的拉丁字母和数字区分开来。 在实际应用中,这样的转换函数可以嵌入到搜索查询中,使得用户无论输入片假名还是平假名,系统都能正确匹配。这对于提高用户体验和...

    oracle日常命令.docx

    - `TO_MULTI_BYTE()`、`TO_SINGLE_BYTE()`:全角和半角字符的转换。 - `NLS_CHARSET_ID()`、`NLS_CHARSET_NAME()`:字符集ID与名称的互换。 6. **聚组函数**: - `AVG()`:计算一组数的平均值。 - `SUM()`:...

    计算机操作员初级理论知识试卷.pdf

    9. **中文输入法切换**:在Windows中,`Shift+空格`可以切换中文输入法的半角和全角。 10. **退出应用程序**:错误的退出方法是单击“最小化”按钮,其他选项均为正确方式。 11. **文件标识符**:文件标识符通常由...

    oracle 获取拼音码函数

    实际的`chinese_spell.sql`文件可能会包含更复杂的逻辑,比如处理多音字、处理全角半角字符、保留声调或者转换为无音调拼音等。在处理大数据量时,还需要考虑性能优化,比如批量处理、缓存计算结果等。 在实际应用...

    C#学习笔记

    在C#中,可以通过遍历字符串中的每一个字符并检查其Unicode类别来进行全角半角的转换。 **6. 设置界面光标** 在Windows Forms中,可以使用`Cursor`属性来改变窗体或控件的光标样式。 示例代码如下: ```csharp ...

    oracle常用函数功能演示

    字符处理函数在Oracle中尤为重要,如`INITCAP`用于首字母大写,`UPPER`和`LOWER`用于全角和半角字符的转换,`CONCAT`或`||`用于字符串拼接,`ASCII`和`CHR`则分别用于获取字符的ASCII码和根据编码创建字符。...

    向Oracle数据库的CLOB属性插入数据报字符串过长错误

    今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。...(一个半角字符一个字节,一个全角字符两个字节,所以汉字1000-2000,而英文200

    ZXSDR OMMB网管服务器数据库和网管安装指导书.docx

    文档特别指出,由于Windows系统和SUSE Linux系统的差异,可能会在代码复制粘贴时遇到字符格式问题,尤其是半角全角、空格和回车等细节,这可能导致代码在Linux环境下无法正常运行,给初学者带来困扰,降低了开通效率...

    一串字字符中多个逗号替换为一个 既标准分隔符(正则表达式)

    需求如下: 将一串字符转换为标准的分隔符字符串 如:”,,,,a,svv,ss,,v,,v,,,” 转换后:”a,svv,ss,v,v” js实现代码:多用于后台中,关键词替换,自动将空格,全角逗号,统一替换为半角逗号,并将多个逗号合并 ...

    经典SQL脚本大全

    │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字表.sql │ 生成GBK汉字表.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql...

    Sqlserver2000经典脚本

    非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │...

Global site tag (gtag.js) - Google Analytics