Oracle中的存储过程

1、语法

--创建存储过程
CREATE [OR REPLACE] PROCEDURE procedure_name
    [(parameter_list)]
[IS|AS]
    [local_declarations]
BEGIN
    executable_statements
EXCEPTION
    [exception_handlers]
END [procdure_name];

 注意:OR REPLACE:可选。其实目的就是防止创建时有同名存储过程时报错。 

2、存储过程的创建与调用

 1、创建存储过程

/*
||=======================创建存储过程===================
*/
CREATE OR REPLACE PROCEDURE add_emp(
    eno number,
    name varchar2,
    salary number,
    job varchar2 default 'CLERK',
    dno number
)
IS
BEGIN
  INSERT INTO emp 
     (empno,ename,job,sal,deptno) VALUES (eno,name,job,salary,dno);
END;

 2、调用存储过程

       >>>传递参数的方式①按照位置②按照名称③混合传参

     1)用命令调用

      语法:EXEC[UTE] procedure_name (parameters_list);

SQL> EXEC add_emp(6666,'MARY',6000,'MANAGER',30);

PL/SQL 过程已成功完成。

SQL>

   注意:命令方式也有三种传参方式。(参照在PL/SQL中调用即可)  

     2)用PL/SQL中调用

/*
||=======================调用存储过程===================
*/
-----------按位置传参-----------
BEGIN
      --按位置传递参数
      add_emp(1111,'MARY',2000,'MANAGER',10);
      --按名字传递参数
      add_emp(dno =>10,name => 'MARY',salary => 2000,eno=>2112,job=>'MANAGER');
      --混合方式传递参数
      add_emp(3111,dno =>10,name => 'MARY',salary => 2000,job=>'MANAGER');
END;

 3、存储过程的访问权限

--授予fjh(用户)执行p(存储过程)的权限
GRANT EXECUTE ON p TO fjh;
--把p(存储过程)的权限设为public(公开)
GRANT EXECUTE ON p TO fjh;
--撤销权限
REVOKE EXECUTE ON p FROM fjh;

  4、删除存储过程

--删除存储过程
DROP PROCEDURE p;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值