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` 是存储过程的参数,需要指定相应的值。如果存储过程没有参数,可以省略调用时的参数列表。