`

pl-sql中内置函数总结

阅读更多
数值函数:
abs(m) m的绝对值
mod(m,n) m被n除后的余数
power(m,n) m的n次方
round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)
trunc(m[,n])m截断n位小数位的值(n缺省为0)


字符函数:
initcap(st) 返回st将每个单词的首字母大写,所有其他字母小写
lower(st) 返回st将每个单词的字母全部小写
upper(st) 返回st将每个单词的字母全部大写
concat(st1,st2) 返回st为st2接st1的末尾(可用操作符"||")
lpad(st1,n[,st2]) 返回右对齐的st,st为在st1的左边用st2填充直至长度为n,st2的缺省为空格
rpad(st1,n[,st2]) 返回左对齐的st,st为在st1的右边用st2填充直至长度为n,st2的缺省为空格
ltrim(st[,set]) 返回st,st为从左边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
rtrim(st[,set]) 返回st,st为从右边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
replace(st,search_st[,replace_st]) 将每次在st中出现的search_st用replace_st替换,返回一个st。缺省时,删除search_st
substr(st,m[,n]) n=返回st串的子串,从m位置开始,取n个字符长。缺省时,一直返回到st末端
length(st) 数值,返回st中的字符数
instr(st1,st2[,m[,n]]) 数值,返回st1从第m字符开始,st2第n次出现的位置,m及n的缺省值为1

substrb('a中國',1,4) a中 按字節取值 漢字根據編碼不同,所佔位數也不一樣

translate(expr,from,to)

select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)

select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

select ltrim(ltrim(' abcbb'),'a') from dual --無第二參數則去掉空格,有參數時,去掉給定的字符單一。

rtrim(st[,set]) 返回st,st为从右边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
例:
1.select initcap('THOMAS'),initcap('thomas') from test;
initca initca
------ ------
Thomas Thomas
2.select concat('abc','def') "first" from test;
first
-----
abcdef
3.select 'abc'||' '||'def' "first" from test;
first
-----
abc def
4.select lpad(name,10),rpad(name,5,'*') from test;
lpad(name,10) rpad(name,5,'*')
------------ ----------------
mmx mmx**
abcdef abcde
5.去掉地址字段末端的点及单词st和rd
select rtrim(address,'. st rd') from test
6.select name,replace(name,'a','*') from test;
name replace(name,'a','*')
---- ---------------------
great gre*t
7.select substr('archibald bearisol',6,9) a,substr('archibald bearisol',11) b from test;
a b
------- -------
bald bear bearisol
8.select name,instr(name,' ') a,instr(name,' ',1,2) b from test;
name a b
------- -------- ---------
li lei 3 0
l i l 2 4

转换函数:
nvl(m,n) 如果m值为null,返回n,否则返回m
to_char(m[,fmt]) m从一个数值转换为指定格式的字符串fmt缺省时,fmt值的宽度正好能容纳所有的有效数字
to_number(st[,fmt]) st从字符型数据转换成按指定格式的数值,缺省时数值格式串的大小正好为整个数
附:
to_char()函数的格式:
符号 说明

9 每个9代表结果中的一位数字

0 代表要显示的先导0

$ 美元符号打印在数的左边

L 任意的当地货币符号

. 打印十进制的小数点

, 打印代表千分位的逗号


例:
1.select to_number('123.45')+to_number('234.56') form test;
to_number('123.45')+to_number('234.56')
----------------------------------------
358.01
2.select to_char(987654321) from test;
to_char(987654321)
------------------
987654321
3.select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999') b,to_char(9874321,'$9,999,999') c from test;
a b c
------- ---------- -----------
$123 $54,321 $9,874,321
4.select to_char(1234.1234,'999,999.999') a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') from test;
a b c
--------- ---------- ------------
1,234.123 .457 1.100

分组函数:
avg([distinct/all] n) 列n的平均值
count([all] *) 返回查询范围内的行数包括重复值和空值
count([distinct/all] n) 非空值的行数
max([distinct/all] n) 该列或表达式的最大值
min([distinct/all] n) 该列或表达式的最小值
stdev([distinct/all] n) 该列或表达式的标准偏差,忽略空值
sum([distinct/all] n) 该列或表达式的总和
variance([distinct/all] n) 该列或表达式的方差,忽略空值

日期函数:
add_months(d,n) 日期d加n个月
last_day(d) 包含d的月份的最后一天的日期
month_between(d,e) 日期d与e之间的月份数,e先于d不支持
new_time(d,a,b) a时区的日期和时间d在b时区的日期和时间
next_day(d,day) 比日期d晚,由day指定的周几的日期
sysdate 当前的系统日期和时间
greatest(d1,d2,...dn) 给出的日期列表中最后的日期
least(d1,k2,...dn) 给出的日期列表中最早的日期
to_char(d [,fmt]) 日期d按fmt指定的格式转变成字符串
to_date(st [,fmt]) 字符串st按fmt指定的格式转成日期值,若fmt忽略,st要用缺省格式
round(d [,fmt]) 日期d按fmt指定格式舍入到最近的日期,日期d按fmt指定格式截断到最近的日期
附:
日期格式:
格式代码说明(举例或可取值的范围)

DD 该月某一天 1-3
DY 三个大写字母表示的周几 SUN,...SAT
DAY 完整的周几,大写英文 SUNDAY,...SATURDAY
MM 月份 1-12
MON 三个大写字母表示的月份 JAN,...DEC
MONTH 完整 JANUARY,...DECEMBER
RM 月份的罗马数字 I,...XII
YY或YYYY 两位,四位数字年
HH:MI:SS 时:分:秒
HH12或HH24 以12小时或24小时显示
MI 分
SS 秒
AM或PM 上下午指示符
SP 后缀SP要求拼写出任何数值字段
TH 后缀TH表示添加的数字是序数 4th,1st
FM 前缀对月或日或年值,禁止填充



例:
1.下一个周五的日期
select next_day(sysdate,6) from test;
2.两个月前的今天的日期
select add_months(sysdate,-2) from test;


分享到:
评论

相关推荐

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     PL/SQL中的过程和函数与其他语言的过程和函数一样,都是为了执行一定的任务而组合在一起的语句。过程无返回值,函数有返回值。其语法结构为:  过程:Create or replace procedure procname(参数列表) as PL/SQL...

    Oracle内置SQL函数-分类整理大全

    这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值....当在过程性语句中使用时,它们可以被赋值给VARCHAR2或者CHAR类型的PL/SQL变量.

    Oracle_SQL_PL/SQL书写规范性能优化技巧.doc

    1、 语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、Sql保留字大写。 2、 连接符or、in、and、以及=、、>=等前后加上一个空格。 3、 对较为复杂的sql语句加上注释,说明算法、功能。 ...... 二、...

    pl/sql 从入门到精通

    学习oracle的经典书籍 记录,表类型 oracle基本命令和内置函数 存储过程、函数、包、触发器、游标、异常处理 事物管理和锁定,集合,动态SQL pl/sql性能问题

    SQL21日自学通

    在PL/SQL 中的数据类型377 字符串类型377 数值数据类型378 二进制数据类型378 日期数据类型378 逻辑数据类型378 ROWID379 PL/SQL 块的结构379 注释380 DECLARE 部分380 变量声明380 常量定义381 指针定义381 %TYPE ...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    第6章-Oracle内置函数 数值型函数 字符型函数 日期型函数 转换函数 NULL函数 集合函数 其他函数 第7章-PLSQL基础 PL/SQL是什么 PL/SQL 变量的使用 表达式 PL/SQL结构控制 PL/SQL中使用DML和DDL语言 PL/...

    汉字大写金额转换(PL/SQL)

    代码功能:将输入的数值,...代码作用:通过此段代码,综合地演示了ORACLE内置函数的用法.可以将此段代码改写为存储函数,供程序调用 代码编写:辽宁.孟祥新(oraclestudy@21cn.com) 注意:如转载或使用此段代码,请保留以上信息

    ORACLE SQL PLSQL

    1-1 pl/sql可以做的工作: 1. 用pl/sql的存储过程和数据库触发器实现至关重要的商业规则。 2. 在数据库中生成和完全地管理xml文档。 3. web页面与数据库的结合。 4. 实现自动化的数据库管理,用pl/sql建立安全级别来...

    PLSQLDeveloper下载

     PL/SQL中的过程和函数与其他语言的过程和函数一样,都是为了执行一定的任务而组合在一起的语句。过程无返回值,函数有返回值。其语法结构为: 过程:Create or replace procedure procname(参数列表) as PL/SQL...

    Allround Automations PLSQL Developer 13.0.5.1908 + x64.zip

    PL/SQL Developer 专注于易用性,代码质量和生产力,以及 Oracle 应用程序开发过程中的关键优势。 Allround Automations PL/SQL Developer 13 + x64 中文多语特别版Allround Automations PL/SQL Developer 13 + x...

    Oracle数据库存储过程技术文档.doc

    第二章 oracle存储过程基础――PL/SQL 9 2.1 pl/sql基础 9 2.1.1 PL/SQL简介 9 2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中...

    oracle10g课堂练习I(2)

    管理 PL/SQL 对象 8-11 PL/SQL 对象 8-12 函数 8-13 过程 8-14 程序包 8-15 程序包说明和程序包体 8-16 内置程序包 8-17 触发器 8-18 触发事件 8-19 锁定 8-20 锁定机制 8-21 数据并发处理 8-22 DML ...

    数据库基础

    §11.4 PL/SQL内置包 234 第十二章PL/SQL 块结构和组成元素 235 §12.1 PL/SQL结构 235 §12.2 PL/SQL块 236 §12.3 标识符 236 §12.4 PL/SQL 变量类型 237 §12.4.1 变量类型 237 §12.4.2 复合类型(记录和表) ...

    Oracle从基础到熟练(太实用了)

    三.SQL函数与SQL查询 ①:Oracle语言基础 ②:SQL 操作符和SQL函数 四.数据管理 ①:增/删/改 ②:约束 ③:一些查询 五.锁,表分区 ①:锁的概念 ②:并发问题 ③:锁机制 ④:锁的类型 ②:常见分区 六.数据库对象...

    Oracle8i_9i数据库基础

    §11.4 PL/SQL内置包 234 第十二章PL/SQL 块结构和组成元素 235 §12.1 PL/SQL结构 235 §12.2 PL/SQL块 236 §12.3 标识符 236 §12.4 PL/SQL 变量类型 237 §12.4.1 变量类型 237 §12.4.2 复合类型(记录和表) ...

    winner

    执行图形用户界面: JavaFX 项目规模: 85天内置PL / SQL Java我们选择PL / SQL-Oracle公司的过程扩展来实现数据库,并使用JDBC库连接Java以访问各种数据库操作。一般的问题查找该学期最受欢迎的课程。 在本学期的...

    toad for oracle 11

    易用的集成化开发环境可方便定义查询标准,测试自动生成的 SQL 语句,浏览解释计划,查看查询结果,保存所生成的 SQL 语句或将其拷贝到编辑器中。利用TOAD Modeler,新手也可以迅速创建复杂的查询。 强大的版本...

Global site tag (gtag.js) - Google Analytics