渔鱼

人生豪迈,在此一博!

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

这里主要记录使用PL/SQL Developer 7.1.4操作Oracle 9i的一些基本内容:

1.存储过程

(1)先创建包并声明存储过程

create or replace package BowenPKG is
       type refcursor is ref cursor;

       procedure Getdata(refout out refcursor);
       procedure GetdataById(rid in number,refout out refcursor);

end BowenPKG;

(2)创建包体和存储过程

create or replace package body BowenPKG is
 
  Procedure Getdata(refout out refcursor)as
  Begin
            Open refout for
            select * from tb;      
  End Getdata;
 
  Procedure GetdataById(rid in number,refout out refcursor)as
  Begin
            Open refout for
            select * from tb where id=rid;           
  End GetdataById;
   
end BowenPKG;

 

2.游标

这里是使用游标的2个小例子,使用了不同的PL/SQL分支语句控制:

(1)While语句

      

代码示例

 

(2) Loop语句

      

代码示例

 

3.自增列

自增列的实现,Oracle与SQL Server不同。SQL Server是通过设置表字段属性实现的;Oracle是通过序列(Sequence)实现的。每个序列只针对一个字段。

(1)创建

创建序列的语句是:

create sequence TTBID
minvalue 1
maxvalue 9999999999999
start with 33
increment by 1
cache 32
order;

在PL/SQL Developer中的操作是:在【浏览器】(broswer)的项目列表中,在【序列】(Sequence)右键属性里选择【新建】,然后在出现的界面上设置即可。

(2)使用

插入数据:

insert into ttb values(ttbid.nextval,'ddddddddddddddd');
commit;

返回序列值:

declare
  ln number;
begin
  insert into  ttb (id)  values (ttbid.nextval) ;
  returning id into ln;
  commit;
end;

 

insert into  ttb values (ttbid.nextval,'ddddddddddddddd') ; 
select ttbid.currval from dual;
commit;

 

4.触发器

触发器既可以手写语句创建,也可以使用PL/SQL Developer辅助创建。

以下示例是为一个表的自增字段创建触发器,从而实现类似SQL Server中的自增字段数据插入效果(可以忽略自增字段字段)。

create or replace trigger tri_ttb
  before insert on ttb
  for each row
begin
  select ttbid.nextval into :new.tid from dual;
end tri_ttb;

使用示例:

Insert into ttb(tname) values('test context');
Commit;

在实践中发现,触发器不仅可以在insert或update中触发,还可以被多个操作触发,使用 or 关键字联接即可。如下: 

create or replace trigger tri_ttb
  before insert or update on ttb
  for each row
begin
  select ttbid.nextval into :new.tid from dual;
 end tri_ttb;

5.备份还原数据库

posted on 2009-03-08 11:29  博闻李  阅读(381)  评论(0编辑  收藏  举报