IN参数:
Create table t(n number);
Create or replace
procedure insert_into_t (p in number ) is
begin
insert into t values(p);
end insert_into_t;
/
这个时候并没有执行该过程,尝试执行
select * from t;
exec insert_into_t (p=> 100);
select * from t;
例子2
drop table t;
Create table t
(n number,
p varchar2(20));
Create or replace
procedure insert_into_t (
p1 in number,
p2 in number) is
begin
insert into t values(p1,’p1’);
insert into t values(p2,’p2’);
end insert_into_t;
/
这个时候并没有执行该过程,尝试执行
select * from t;
exec insert_into_t (p1=> 100, p2=>200);
select * from t;
参数传递方法:
1. 使用名称表示
exec insert_into_t (p2=> 101, p1=>201);
2. 使用位置表示
exec insert_into_t (102, 202);
3. 使用混合表示
适用于有默认值的情况,注意:OUT 和 IN OUT 参数不能有默认值
CREATE OR REPLACE procedure default_values(
P1 varchar2,
P2 varchar2 default ‘Chris’,
P3 varchar2 default ‘Sean’) as
Begin
Dbms_output.put_line(p1);
Dbms_output.put_line(p2);
Dbms_output.put_line(p3);
End default_values;
/
只想传入1,3参数:
set serveroutput on
exec default_values(‘Tom’, p3=>’Joel’);