首页  ·  知识 ·  数据库
Oracle创建存储过程和使用举例
网友  IT专家网    编辑:德仔   图片来源:网络
  1.创建存储过程   create or replace package pk_1 as //创建包的声明   TYPE cur i
  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;
  /
 1.创建存储过程:create or replace package pk_1 as //创建包的声明 TYPE cur is ref cursor; //声明一个指针.
  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;
 
本文作者:网友 来源:IT专家网
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读