in out nocopy 、out nocopy 引用传递
in out 、out 副本传递 复制副本-->传入副本-->修改副本-->正常结束、传出副本
复制副本-->传入副本-->修改副本-->不正常结束、不传出副本
SQL> declare
2 a number:=1;
3 procedure proc(a in out number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 /* exception
10 when others then
11 null;*/
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
after error:1
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 exception
10 when others then
11 null;
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
10
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out nocopy number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 exception
10 when others then
11 null;
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
10
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out nocopy number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 /* exception
10 when others then
11 null;*/
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
after error:10
PL/SQL procedure successfully completed
SQL>
in out 、out 副本传递 复制副本-->传入副本-->修改副本-->正常结束、传出副本
复制副本-->传入副本-->修改副本-->不正常结束、不传出副本
SQL> declare
2 a number:=1;
3 procedure proc(a in out number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 /* exception
10 when others then
11 null;*/
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
after error:1
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 exception
10 when others then
11 null;
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
10
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out nocopy number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 exception
10 when others then
11 null;
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
10
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 a number:=1;
3 procedure proc(a in out nocopy number)
4 is
5
6 begin
7 a:=10;
8 raise no_data_found;
9 /* exception
10 when others then
11 null;*/
12 end;
13 begin
14 proc(a);
15 dbms_output.put_line(a);
16 exception
17 when others then
18 dbms_output.put_line('after error:'||a);
19 end;
20 /
after error:10
PL/SQL procedure successfully completed
SQL>