Oracle编程学习存储过程、函数、游标

 Oracle编程不同于SQLserver,日期函数和SQLServer不同,数据类型转换和SQLServer不同,为了将Oracle学习简单化,重点指出几个常见并且用得比较多的

函数

日期函数: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子查询、联合查询、条件查询、函数查询,就很容易对付了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值