oracle procedure 开发

oracle procedure 开发

1、建立过程的语法:

 CREATE [OR REPLACE] PROCEDURE 过程名

    [(arg1 [mode] datatype[,......])] --当指定参数数据类型时,不能指定其长度。mode值:in(默认)、out、in out。

 IS|AS

    pl/sql;

例1、无参过程

SQL> CREATE OR REPLACE PROCEDURE hx_01 --建立过程hx_01
  2  is
  3  begin
  4   dbms_output.put_line(sysdate);
  5  end;
  6  /
 
Procedure created

在pl/sql调用过程有两种方法:EXECUTE(exec)、call

exec hx_01;或call hx_01();

输出:12-4月 -10

例2、带有3个in参数的过程

SQL> create or replace procedure hx_02  --创建过程hx_02
  2  (v_no in v_dept.deptno%type,v_name in  v_dept.dname%type,v_loc v_dept.loc%type)
  3  as
  4  begin
  5   insert into v_dept values(v_no,v_name,v_loc);
  6  end;
  7  /
 
Procedure created
 
SQL> create table v_dept as select * from dept where 1<>1;
 
Table created
 
SQL> select * from v_dept;
/
 
DEPTNO DNAME          LOC
------ -------------- -------------
 
SQL> call hx_02('1','研发部','中国');   --执行过程
 
Method called
 
SQL> select * from v_dept;
 
DEPTNO DNAME          LOC
------ -------------- -------------
     1 研发部         中国

例3、带有2个in参数、1个in out参数

SQL> create or replace procedure hx_04       --创建过程hx_04
  2  (v_no in v_dept.deptno%type,v_name in v_dept.dname%type,v_loc in out varchar2)
  3  as
  4  begin
  5   v_loc:='部门号: '||v_no||' 部门名: '||v_name||' 部门位置: '||v_loc;
  6  end;
  7  /
 
Procedure created
 
SQL> var n varchar2(100);
SQL> exec :n:='中国';
 
PL/SQL procedure successfully completed
n
---------
中国
 
SQL> call hx_04('1','项目部',:n);  --执行过程
 
Method called
n
---------
部门号: 1 部门名: 项目部 部门位置: 中国

例4、带有2个in参数,1个out参数

SQL> create or replace procedure hx_05 --创建过程hx_05
  2  (v_no in v_dept.deptno%type,v_name out  v_dept.dname%type,v_loc out varchar2)
  3  as
  4  begin
  5   SELECT DNAME,LOC INTO V_NAME,V_LOC FROM v_DEPT WHERE DEPTNO=V_NO;
  6  end;
  7  /
 
Procedure created

SQL> var a varchar2(10);
SQL> var b varchar2(10);
SQL> exec hx_05(1,:a,:b);  --执行过程
 
PL/SQL procedure successfully completed
a
---------
研发部
b
---------
中国
 

 2、删除过程

   drop procedure 过程名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值