oracle存储过程写法及调用

  • 格式:docx
  • 大小:14.37 KB
  • 文档页数:2

Oracle存储过程的写法及调用如下:

存储过程定义语法:

```sql

CREATE [ORREPLACE] PROCEDURE procedure_name

(arg1 [mode1] datatype1, arg2 [mode2] datatype2)

IS [AS]

PL/SQLBlock;

```

其中,`procedure_name` 是存储过程的名称;`arg1` 和 `arg2` 是存储过程的参数,包括参数名、模式(IN、OUT、IN OUT)和数据类型;`PL/SQLBlock` 是存储过程的主体部分,包括一系列的SQL语句。

如果存储过程没有参数,只需要定义存储过程的主体部分即可。例如:

```sql

CREATE PROCEDURE out_time IS

BEGIN

DBMS_OUTPUT.PUT_LINE('procedure_1......');

END;

```

如果存储过程有参数,需要在定义时指定参数名、模式和数据类型。例如:

```sql

CREATE PROCEDURE procedure_2(v_i IN NUMBER, v_j OUT NUMBER) IS

BEGIN

v_j := v_i * 2;

DBMS_OUTPUT.PUT_LINE('procedure_2......' || v_i || '......' || v_j);

END;

```

在这个例子中,`procedure_2` 接受两个参数 `v_i` 和 `v_j`,其中 `v_i` 是输入参数,`v_j` 是输出参数。在存储过程内部,对 `v_i` 进行运算,并将结果赋值给 `v_j`,然后输出运算结果。

调用存储过程的方法如下:

```sql

BEGIN

procedure_name(arg1 => value1, arg2 => value2);

END; ```

其中,`procedure_name` 是存储过程的名称;`arg1` 和 `arg2` 是存储过程的参数,需要指定相应的值。如果存储过程没有参数,可以省略调用时的参数列表。