oracle的sql函数

只读事务
set transaction read only
当一个用户添加了只读事务,则查询时只会查到设置只读事务之前的内容,在并发量大的系统中,通过设置只读事务
便于统计


oracle的sql函数的使用
字符函数
lower(char):将字符串转化为小写的格式
upper(char):将字符串转化为大写的格式
length(char):返回字符串的长度
substr(char,m,n): 取字符串的子串,m代表从第几个取,n代表取几个。

select upper(substr(ename,1,1)) from table;
select lower(substr(ename,2,length(ename))) from table;
select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename))) from table;

replace(char1, search_string,replace_string)

等等字符函数

oracle数学函数:
power(m,n),cos(n),cosh,exp,ln,log(n,m),sin,sinh,sqrt,tan,tanh,acos,asin,atan,round,常用的是:
round(n,[m]) 该函数用于执行四舍五入,m代表保留几位小数
trunc(n,[m]) 用于截取,m代表截取到小数点几位,默认只保留整数,m如果是负数代表截取整数部分。
floor(n) 返回比n小的最大的正数
ceil(n) 返回比n大的最小的正数
mod(n,m) 取模运算,n被除数,m除数

日期函数:
sysdate:返回系统时间
add_months(d,n);
last_day(d);//返回指定日期的那个月的最后一天
.....where sysdate>add_months(date,8); //8个月以前的
.....where sysdate>=add_months(date,12*8);//满10年的

select sysdate-date '入职天数' from table;


类型转化函数:
oracle能够隐形自动将插入的数据转化为指定的类型

但是有时候还是需要人为的去转化:
to_char(date,'yyyy-mm-dd hh24:mi:ss')//返回日期和具体的时间

hh24: 24小时格式
hh12: 12小时格式

oracle返回日期时默认只返回年月日,插入数据时如果没有指定时分秒会默认置为零。

to_char(salary, 'L99999.99')//返回类似RMB100的数据,L代表系统默认的当地货币格式,99999.99代表前面五位整数后面两位小数。


9:显示数字,并忽略前面的零
0:显示数字,如果位数不足,用0补齐
.:在指定位置显示小数点
,:在指定位置显示逗号
$:在数字前加美元
L:在数字前面加本地货币符号
C:在数字前面加国际货币符号
G:在指定位置显示组分隔符
D:在指定位置显示小数点符号


系统函数
sys_context('USERENV',terminal,lanuage,db_name,nls_date_format,session_user,current_schema,host)

terminal: 当前会话客户所对应的终端的标识符
lanuage:语言
db_name:当前数据库名称
nls_date_format:当前会话客户所对应的日期格式
session_user:当前会话客户所对应的数据库用户名
current_schema:当前会话客户所对应的默认方案名
host:返回数据库所在主机的名称

select sys_context('USERENV','db_name') from dual;


用户和方案的关系:
当创建一个用户的时候,oracle系统会自动对应这个用户创建一个方案。oracle是以方案的方式管理数据对象的,方案的名和用户名是一样的,方案里有很多数据对象,包括表、
视图、触发器等等。

原文地址:https://www.cnblogs.com/dongzhuangdian/p/5694183.html