当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle存储过程创建和使用举例

Oracle
理解SCN与TimeStamp的相互转换
用OMS来实现Oracle数据备份的方法
详细介绍Oracle数据库的启动和关闭
Oracle数据库重做日志文件丢失后的恢复
检测Oracle的可用性和表空间容量
oracle的long类型字段的应用
把数据从MySQL迁到Oracle的几点注意事项
没有Oracle客户端系统移植的三种方法
Oracle监听器服务不能启动的7步解决法
Oracle 10g的自动段空间管理(ASSM)
Oracle运行速度与效率高的秘密
Oracle实现自增型ID和删除重复记录
Oracle数据库存储过程的6个问题
Oracle 10G里手工建库的全过程
Oracle 10g手工创建数据库个人经验
redhat linux 下安装oracle 10g 的方法
Oracle静态注册和动态注册
Oracle数据更改后出错
JSP+Oracle简便通用的表单数据存储处理方法
Oracle 10g实用程序trcsess:跟踪sql语句

Oracle存储过程创建和使用举例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 217 ::
收藏到网摘: n/a

oracle 存储过程创建和使用举例

1.创建存储过程
create or replace package pk_1 as  //创建包的声明
 TYPE cur is ref cursor; //声明一个指针
 procedure p1(cr out cur);
end;

/

create or replace package body pk_1 as  //创建包体
  procedure p1(cr out cur) is
  begin
      open cr for select STATUS,table_name  from dba_tables;
   end;
end;

/


2.调用(在sqlplus中):
set serveroutput on //设置允许进行输出操作
/

declare
 cc pk_1.cur;
 s varchar2(20);
 t varchar2(30);
 c11 number :=0; //变量c11一定要赋初值,不然将不能正常运算
begin
 pk_1.p1(cc);
 loop
   fetch cc into s,t;
  
   exit when cc%notfound;
  
   c11 := c11 + 1;
  
   dbms_output.put_line('status = ' || s || '; table_name  = ' || t);
 end loop;
 close cc;
 dbms_output.put_line(c11);
end;

/

3.对于不是返回一个结果集的存储过程的调用

  CREATE OR REPLACE PROCEDURE p1
 (
   parameter1 in number,
   parameter2 out number 
 ) is
  value1 INTEGER :=0;
 begin
   select count(*) into value1 from dba_tables where table_name like '%t%';
   parameter2 := value1;
 end p1;


sqlplus 中运行procedure
 第一种调用方式:

  (1)set serveroutput on
    declare
      v_p_o_succeed varchar2;
    begin
      pr_jwry_info('a_p_i_date',v_p_o_succeed) ;
      dbms_output.put_line(v_p_o_succeed);
    end;
 第二种调用方式:

   (2) var cc varchar(20)
       p1(1,:cc)
       print cc;


资料引用:http://www.knowsky.com/534161.html