from emp
where deptno=30;
把部门30中无佣金雇员的佣金显示为“NO DATA”。
set null是SQL*PLUS命令,用它来标识空值(NULL),可以设置为任意字符串。
存盘命令SAVE
save 文件名
input
1 select empno,ename,job
2 from emp
3 where job='analyst'
save research
目录中会增加一个research.sql文件。
编辑命令EDIT
edit
EDIT编辑当前缓冲区中的内容。
编辑一个文件
edit research
调入命令GET
get research
把磁盘上的文件内容调入缓冲区,并显示在屏幕上,文件名尾不必加.sql。
START命令
运行指定的文件
start research
输出命令SPOOL
spool tryfile
不仅可以使查询结果在屏幕上显示,还可以使结果存入文件
停止向文件输出
spool off
把查询结果在打印机上输出,先把它们存入一个文件中,
然后不必使用SPOOL OFF,而用:
spool out
SPOOL OUT关闭该文件并在系统缺省的打印机上输出
制作报表举例
edit tryfile
set echo off
set autocommit on
set pagesize 25
insert into emp (empno,ename,hiredate)
values(9999,'geiger',sysdate);
insert into emp (empno,ename,deptno)
values(3333,'samson',20);
spool new_emp
select * from emp
where deptno=20
or deptno is null
/
spool off
set autocommit off
用start命令执行这个文件
--------
6 函数
字符型函数
initcap(ename);将ename中每个词的第一个字母改为大写。
如:jack smith--Jack Smith
length(ename);计算字符串的长度。
substr(job,1,4);
其它
lower
upper
least 取出字符串列表中按字母排序排在最前面的一个串
greatest 取出字符串列表中按字母排序排在最后的一个串
日期函数
add_month(hiredate,5) 在雇佣时间上加5个月
month_between(sysdate,hiredate) 计算雇佣时间与系统时间之间相差的月数
next_day(hiredate,'FRIDAY') 计算受雇日期之后的第一个星期五的日期
例
select ename,sal,next_day(sysdate,'FRIDAY') as_of
from emp
where deptno=20;
(as_of是别名)
如果不用to_char函数,日期在ORACLE中的缺省格式是'DD_MON_YY'
to_char(date,date picture)
select ename,to_char(hiredate,'Dy Mon dd,yyyy') hired
from emp
where deptno=10;
to_date(字符串,格式)
insert into emp(empno,ename,hiredate)
共17页 第1页 第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页






