码迷,mamicode.com
首页 > 数据库 > 详细

oracle6

时间:2015-10-05 20:43:07      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:

转换函数  
 介绍
转换函数用于将数据类型从一种转为另外一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型 
比如: 
create table t1(id int); 
insert into t1 values(10);-->这样oracle会自动的将10 -->10 

create table t2 (id varchar2(10)); 
insert into t2 values(1); -->这样oracle就会自动的将1 -->1; 
我们要说的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换。 

 to_char
你可以使用select ename, hiredate, sal from emp where deptno = 10;显示信息,可是,在某些情况下,这个并不能满足你的需求。 

问题:日期是否可以显示 时/分/秒 
SQL> select ename, to_char(hiredate, yyyy-mm-dd hh24:mi:ss) from emp; 
问题:薪水是否可以显示指定的货币符号 
SQL> 


yy:两位数字的年份 2004-->04 
yyyy:四位数字的年份  2004年 
mm:两位数字的月份 8月-->08 
dd:两位数字的天 30号-->30 
hh24: 8点-->20 
hh12:8点-->08 
mi、ss-->显示分钟\秒 

9:显示数字,并忽略前面0 ,to_char(sal,L99999.99) 
0:显示数字,如位数不足,则用0补齐to_char(sal,L09999.99) 
.:在指定位置显示小数点to_char(sal,L99999.99) 
,:在指定位置显示逗号 to_char(sal,L99,999.99)
$:在数字前加美元 to_char(sal,$99999.99)
L:在数字前面加本地货币符号 to_char(sal,L99,999.99)
C:在数字前面加国际货币符号 
G:在指定位置显示组分隔符、 
D:在指定位置显示小数点符号(.) 

问题:显示薪水的时候,把本地货币单位加在前面 
SQL> select ename, to_char(hiredate, yyyy-mm-dd hh24:mi:ss), to_char(sal,L99999.99) from emp; 
问题:显示1980年入职的所有员工 
SQL> select * from emp where to_char(hiredate, yyyy)=1980; 
问题:显示所有12月份入职的员工 
SQL> select * from emp where to_char(hiredate, mm)=12; 

 to_date
函数to_date用于将字符串转换成date类型的数据。 
问题:能否按照中国人习惯的方式年—月—日添加日期。 

系统函数 
 sys_context,以下是7个参数:
1)terminal:当前会话客户所对应的终端的标示符 
2)lanuage: 语言 
3)db_name: 当前数据库名称 
4)nls_date_format: 当前会话客户所对应的日期格式 
5)session_user: 当前会话客户所对应的数据库用户名 
6)current_schema: 当前会话客户所对应的默认方案名 (一个用户对应一个方案,方案名和用户是一样的)
7)host: 返回数据库所在主机的名称 
通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库? 
select sys_context(USERENV,db_name) from dual; 
注意:USERENV是固定的,不能改的,db_name可以换成其它,比如select sys_context(USERENV,lanuage) from dual;又比如select sys_context(USERENV,current_schema) from dual; 

 

方案(schema)

理解:当一个用户,创建好以后,如果该用户创建了任意一个数据对象,此时,我们的dbms就会创建一个对应的方案与该用户对应。方案名与用户名完全一样。方案里面有很多的数据对象(表、视图、触发器、存储过程),是以方案的方式组织数据对象.

 技术分享

小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可以使用pl/sql developer

方案这个概念的实际应用:
要求:请完成一个功能,让xiaohong用户可以去查询scott的emp表
步骤:
1、先用scott登录
sql>conn scott/tiger;
2、赋权限给xiaohong
给某用户添加表[增删改查]权限基本语法:grant [select|update|delete|insert|all] on 表名 to 用户名;
sql>grant select on emp to xiaohong;
3、xiaohong查询scott的emp
用户查询授权表的基本语法:select * from [方案名].表名;
注意:方案名不带的话,默认是查询自己方案中的表。
sql>select * from scott.emp;

 

oracle6

标签:

原文地址:http://www.cnblogs.com/yaowen/p/4856207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!