Oracle 存储过程

2016/01/01 Database

存储过程,就是一组用于完成特定数据库功能的SQL语句集,存放于数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的参数 来调用执行它,从而完成一个或一系列的数据库操作。

语法

create or replace procedure 存储过程名(param1 in typeparam2 out type 

as 

变量1 类型(值范围); --vs_msg   VARCHAR2(4000); 

变量2 类型(值范围);

Begin

语句;

Exception

    When others then

       Rollback;

End;

第一个实例

首先执行(编译)如下语句:

CREATE OR REPLACE PROCEDURE GET_RESULT AS
BEGIN
     DBMS_OUTPUT.PUT_LINE('HELLO WORLD');
END GET_RESULT;

然后在Oracle SQL Developer对应的DB中的Procedures中可看到对应的过程,可以右键执行,或者在*.sql中执行如下语句:

SET SERVER OUTPUT ON;
BEGIN
GET_RESULT;
END;

第二个实例

有输入的过程:

CREATE OR REPLACE PROCEDURE GET_RESULT(
    PARAM IN VARCHAR2
  ) AS
BEGIN
  DBMS_OUTPUT.PUT_LINE(PARAM);
END GET_RESULT;

测试语句:

SET SERVER OUTPUT ON;
BEGIN
     GET_RESULT('PUT IN');
END;

第三个实例

有输出的过程:

CREATE OR REPLACE PROCEDURE GET_RESULT(
     PARAM_VARCHAR OUT VARCHAR2,
     PARAM_NUMBER OUT NUMBER
  ) AS
BEGIN
     SELECT 'OUT PUT',4 INTO PARAM_VARCHAR, PARAM_NUMBER FROM DUAL;
END GET_RESULT;

测试:

SET SERVER OUTPUT ON;
DECLARE
     v_out VARCHAR2(20);
     v_number NUMBER(4,0);
BEGIN
     GET_RESULT(v_out, v_number);
     DBMS_OUTPUT.PUT_LINE(v_out);
     DBMS_OUTPUT.PUT_LINE(v_number);
END;

第四个实例

运行中有参数的过程:

CREATE OR REPLACE PROCEDURE GET_RESULT(
     PARAM_NUMBER OUT NUMBER
  ) AS
     v_num1 NUMBER(4,0):=10;
     v_num2 NUMBER(4,0):=33;
BEGIN
     PARAM_NUMBER:=v_num1 + v_num2;
END GET_RESULT;

测试:

SET SERVER OUTPUT ON;
DECLARE
     v_number NUMBER(4,0);
BEGIN
     GET_RESULT(v_number);
     DBMS_OUTPUT.PUT_LINE(v_number);
END;

Search

    Table of Contents