oracle 字符、数值、日期处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符及处理方法
1.固定长度字符串:
char(n) 空格补足,效率高,最大2000.
2.变长:
varchar(n) 最大4000
varchar2(n) 最大4000 向下兼容
3.在变量声明中的字符类型:
char(n) 大小:32767
varchar(n),varchar2(n) 为:32767
4.字符型处理:
4.1 向左补全字符串lpad(string,padded_length,[pad_string]) 函数
4.2 向右补全字符串rpad(string,padded_length,[pad_string]) 函数
4.3 小写返回lower()
4.4 大写返回upper()
4.5 单词首字符大写initcap()
4.6 返回字符长度length()
4.7 截取字符串substr(string,start_index,length) 第一个字符位置为1
4.8 获得字符串出现的位置instr(string ,sub_string, [,start_index] [,times])
4.9 删除字符串左侧空格ltrim()
4.10 删除字符串右侧空格rtrim()
4.11 删除字符串两侧空格trim()
4.12 串联字符串concat()
select concat(ename,'_emp') from emp;
串联方法2:select ename||'_emp'||deptno from emp;
-----------||字符串连接符
4.13 反转字符串reverse()
数值及处理方法
一、数值:
number [(precision [,scale]]
注:precision 为精度,scale 为指定小数后的位数。根据四舍五入取精度。
对12345.977 精度为8,当精确到小数点后2位为12345.98 精度为7;而精确到小数点前2位的话为12300,精度为3。对于0.000995 精度为3,精确到小数点后5位为0.00100,此时精度为3。
二、数值处理:
2.1 返回数值的绝对值abs()
2.2 返回数字的“四舍五入”round()
2.3 向上取整ceil()
2.4 向下取整floor()
2.5 取模mod(被除数,除数)
2.6 返回数字的正负性sign()
注:小于0时返回-1,大于0时返回1,等于0时返回0.
2.7 返回数字的平方根sqrt()
2.8 乘方power(底数,指数)
2.9 截取数字trunc(原数值[,小数位数])
2.10 将ASCII 码转换为字符chr()
如:select chr(65) character from dual;
CHARACTER
---------
A
2.11 格式化数值to_char(原数值,格式)
格式可以为:0、9、,、FM、$、L、C。
(1)“0”
select to_char(12.78,'000.000') result from dual;
RESULT
--------
012.780
(2)“9”
* select to_char(12.78,'999.999') result from dual;
RESULT
--------
12.780
* select to_char(0.78,'999.999') result from dual;
RESULT
--------
.780
* select to_char(0.78,'990.999') result from dual;
RESULT
--------
0.780
(3)“,”
select to_char(4560000,'99,999,990.00') result from dual;
RESULT
--------------
4,560,000.00
(4)“FM”——Format Mask
select to_char(12.78,'999.999') result ,to_char(12.78,'FM999.999') fm_result from dual;
RESULT FM_RESULT
-------- ---------
12.780 12.78
(5)“$”
* select to_char(12.78,'$999.999') result from dual;
RESULT
---------
$12.780
* select to_char(12.78,'999.9$99') result from dual;
RESULT
---------
$12.780
但与FM一起时必须FM在$的开头:
* select to_char(12.78,'FM$999.999') result from dual;
RESULT
---------
$12.78
(6)“L”
select to_char(12.78,'FML999.999') result from dual;
RESULT
------------------
¥12.78
(7)“C”
select to_char(12.78,'FM999.999C') result from dual;
RESULT
---------------
12.78CNY