Oracle中的chr()函数和asicc()函数

来源:互联网 发布:传奇手游刷元宝软件 编辑:程序博客网 时间:2024/05/22 15:25

(一)写在前面

因为一些原因,在跨入编程界N年以后的脱离仪式上,还是没能脱离代码。辗转了Java及Android,不得不饮恨放弃。专项了web前端,也是不了了之。痛定思痛,在“学”和“用”两个方面考虑,最终还是选定了Oracle为代表的数据库。还是那句话,我们每个人,在时间的某个节点,总会遇上一些不得不的,选择或被选择。

离别时只道是当时习惯 / 一切都很平淡不觉出彩 /雨落时才想起那种心安 / 欢声和笑语还在我耳畔 / 

如今已各自在城市两端 /相距远相见难不聚只散 / 其实我并没有太多期盼 /毕竟一生很短少有圆满 /

------------------------------------------------------------分割线---------------------------------------------------------------------

(二)用到语句

遇到一个select语句,贴出如下:

select chr(54740) zhao,chr(65) chr from dual;
输出结果如下:
ZH C-- -赵 A


(三)语句分析

此处用到chr()函数,把ASCII整数值,转换成对应的字符的操作。翻译一下这个语句:“从dual表中查询‘54740’和‘65’两个ASCII码对应的字符,表头设为‘zhao’和‘chr’”

1、54740对应的字符为“赵”

2、65对应的字符为“A”

3、因为54740对应一个汉字,一个汉字又占用两个字符,所以表头的“zhao”只显示两个字符“ZH”

4、因为65对应一个大写字母A,所以表头的“chr”只显示一个字符“C”

5、还有一点做补充吧,大家都知道。小写字母a和大写字母A在ASCII表中对应的数值是不同的,也就是这是两个ASCII码


(四)引申分析

之前在Java和Android软件的编码过程中,偶用到数据库,需要把数据库中几个字符替换掉。其中就有回车符和换行符,也是走了弯路。为了言简意赅,看下面:

1、错误写法:replace(desc,'\r\n','');

2、正确写法:replace(desc,chr(13)||chr(10),'');

在此,replace语法就不做过多介绍,即替换函数


(五)引申2 几个常用的chr函数对照

chr(9) 制表符

chr(10) 换行符

chr(13) 回车符

chr(32) 空格符

chr(34) 双引号“”


(六)引申3 ASCII函数

用法:select  ASCII('A') from dual;

结果:65

作用:把对应的字符,转换成ASCII码


(七)引申4 ASCII码表

ASCII码表 0-127

BinDecHex缩写/字符解释00000000000NUL(null)空字符00000001101SOH(start of headling)标题开始00000010202STX (start of text)正文开始00000011303ETX (end of text)正文结束00000100404EOT (end of transmission)传输结束00000101505ENQ (enquiry)请求00000110606ACK (acknowledge)收到通知00000111707BEL (bell)响铃00001000808BS (backspace)退格00001001909HT (horizontal tab)水平制表符00001010100ALF (NL line feed, new line)换行键00001011110BVT (vertical tab)垂直制表符00001100120CFF (NP form feed, new page)换页键00001101130DCR (carriage return)回车键00001110140ESO (shift out)不用切换00001111150FSI (shift in)启用切换000100001610DLE (data link escape)数据链路转义000100011711DC1 (device control 1)设备控制1000100101812DC2 (device control 2)设备控制2000100111913DC3 (device control 3)设备控制3000101002014DC4 (device control 4)设备控制4000101012115NAK (negative acknowledge)拒绝接收000101102216SYN (synchronous idle)同步空闲000101112317ETB (end of trans. block)传输块结束000110002418CAN (cancel)取消000110012519EM (end of medium)介质中断00011010261ASUB (substitute)替补00011011271BESC (escape)溢出00011100281CFS (file separator)文件分割符00011101291DGS (group separator)分组符00011110301ERS (record separator)记录分离符00011111311FUS (unit separator)单元分隔符001000003220(space)空格001000013321! 001000103422" 001000113523# 001001003624$ 001001013725% 001001103826& 001001113927' 001010004028( 001010014129) 00101010422A* 00101011432B+ 00101100442C, 00101101452D- 00101110462E. 00101111472F/ 0011000048300 0011000149311 0011001050322 0011001151333 0011010052344 0011010153355 0011011054366 0011011155377 0011100056388 0011100157399 00111010583A: 00111011593B; 00111100603C< 00111101613D= 00111110623E> 00111111633F? 010000006440@ 010000016541A 010000106642B 010000116743C 010001006844D 010001016945E 010001107046F 010001117147G 010010007248H 010010017349I 01001010744AJ 01001011754BK 01001100764CL 01001101774DM 01001110784EN 01001111794FO 010100008050P 010100018151Q 010100108252R 010100118353S 010101008454T 010101018555U 010101108656V 010101118757W 010110008858X 010110018959Y 01011010905AZ 01011011915B[ 01011100925C\ 01011101935D] 01011110945E^ 01011111955F_ 011000009660` 011000019761a 011000109862b 011000119963c 0110010010064d 0110010110165e 0110011010266f 0110011110367g 0110100010468h 0110100110569i 011010101066Aj 011010111076Bk 011011001086Cl 011011011096Dm 011011101106En 011011111116Fo 0111000011270p 0111000111371q 0111001011472r 0111001111573s 0111010011674t 0111010111775u 0111011011876v 0111011111977w 0111100012078x 0111100112179y 011110101227Az 011110111237B{ 011111001247C| 011111011257D} 011111101267E~ 011111111277FDEL (delete)删除

(八)引申5 ASCII码表扩充

原创粉丝点击