函数
日期函数:Months_between(sysdate,指定时间)算出日期时间差
Add_Months(sysdate,1)返回增加月份数
Next_day(sysdate,星期一)返回下周一
Last_day(sysdate)返回当月最后一天
特殊函数: trunc(sysdate,'y')返回当年第一天
trunc(sysdate,'MM')返回当月第一天
trunc(sysdate,'dd')返回当天0点
trunc(sysdate,'HH')返回当时整时刻。。。。。
字符串转换:to_char(sysdate,'yyyyMMdd')返回标准日期
to_char(sysdate,'D')返回星期+1
to_char('1000000','L999,999,999.99')返回金钱格式四舍五入到小数点2位
确定一年内天数select add_months(trunc(sysdate,'y'),12))-trunc(sysdate,'y') from dual
以下是存储过程:
--根据主键判断是否插入数据
create or replace procedure addone(ppid test_pp.pp_id%type,pp_name test_pp.pp_name%type,
pp_demo test_pp.pp_demo%type)
as
a number;
begin
select count(1) into a from test_pp where test_pp.pp_id=ppid;
if a=0
then
insert into test_pp values (ppid,pp_name,pp_demo);
end if;
end;
以下是函数:
--返回用户名
create or replace function findone(ppid test_pp.pp_id%type)return test_pp.pp_name%type
is
n test_pp.pp_name%type;
begin
select pp_name into n from test_pp where test_pp.pp_id=ppid;
return n;
end;
以下是游标:
--使用游标循环输出
declare cursor mycur is select *from test_pp;
pp test_pp%rowtype;
begin
for pp in mycur loop
dbms_output.put_line('name:'||pp.pp_name);
dbms_output.put_line('demo:'||pp.pp_demo);
end loop;
如果能写好以上存储过程、函数、游标,同时要理解索引的作用,索引使用应该注意哪些,了解视图的原理,知道SQL语句优化规范,善于使用性价比高的SQL语句(当然,这里的性是指性能,价是指运行效率),以及数据库的一些安全性。学习Oracle其实不难,做到这些基本上掌握了Oracle理念,对于开发人员来说已经足够了,那些大型企业的面试题看似很难,只要再掌握SQL子查询、联合查询、条件查询、函数查询,就很容易对付了。