oracle procedure 参数
时间: 2023-10-12 21:20:15 浏览: 144
oracle 参数详解
Oracle存储过程(procedure)允许你定义输入、输出和输入/输出参数。定义参数可以让存储过程更加灵活和可重用。
定义输入参数:
```sql
PROCEDURE procedure_name(
param_name IN data_type,
...
);
```
定义输出参数:
```sql
PROCEDURE procedure_name(
param_name OUT data_type,
...
);
```
定义输入/输出参数:
```sql
PROCEDURE procedure_name(
param_name IN OUT data_type,
...
);
```
其中,param_name为参数名称,data_type为参数数据类型。IN表示输入参数,OUT表示输出参数,IN OUT表示输入/输出参数。
在存储过程中,可以使用参数名称来引用参数值。在调用存储过程时,需要提供参数值。如果参数是输入参数或者输入/输出参数,则需要提供参数值;如果参数是输出参数或者输入/输出参数,则需要提供变量作为参数值的接收器。
示例:
```sql
CREATE OR REPLACE PROCEDURE my_procedure(
p_input IN VARCHAR2,
p_output OUT VARCHAR2,
p_inout IN OUT NUMBER
)
AS
BEGIN
-- do something with input parameter
DBMS_OUTPUT.PUT_LINE('Input parameter is: ' || p_input);
-- do something with output parameter
p_output := 'Output parameter value';
-- do something with input/output parameter
p_inout := p_inout + 1;
END;
```
调用存储过程:
```sql
DECLARE
v_input VARCHAR2(100) := 'Input parameter value';
v_output VARCHAR2(100);
v_inout NUMBER := 10;
BEGIN
my_procedure(v_input, v_output, v_inout);
-- do something with output parameter
DBMS_OUTPUT.PUT_LINE('Output parameter is: ' || v_output);
-- do something with input/output parameter
DBMS_OUTPUT.PUT_LINE('Input/output parameter is: ' || v_inout);
END;
```
在调用存储过程时,需要提供与存储过程参数定义相匹配的参数值或者变量。注意,输入/输出参数需要提供变量作为接收器。
阅读全文