1.过程
create or replace procedure compute1(num1 in out number,num2 in out number)
is
v1 number;
v2 number;
begin
v1 := num1/num2;
v2 := mod(num1/num2);
num1 = v1;
num2 = v2;
end;2.调用(错误1)
declare
n1 number := &num1;
n2 number := &num2;
begin
compute1(n1,n2);
dbms_output.put_line('num1:'||n1);
dbms_output.put_line('num2:'||n2);
end;
错误提示:ORA-06550:第5行,第7列
PLS-00905:对象DMS.comput1 无效
ORA-06550:第5行,第7列
PL/SQL statement ignored3.另一种调用方法(错误2)如下:
SQL> var n1 number;
SQL> var n2 number;
SQL> exec :n1:=100;PL/SQL procedure successfully completed
n1
---------
100SQL> exec :n2:=30;PL/SQL procedure successfully completed
n2
---------
30
以上都对。
SQL> exec compute1(:n1,:n2);begin compute1(:n1,:n2); end;ORA-06550: 第 1 行, 第 7 列:
PLS-00905: 对象 DMS.COMPUTE1 无效
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
n1
---------
100
n2
---------
30出错了,为什么呢?请大家看一下,谢谢
create or replace procedure compute1(num1 in out number,num2 in out number)
is
v1 number;
v2 number;
begin
v1 := num1/num2;
v2 := mod(num1/num2);
num1 = v1;
num2 = v2;
end;2.调用(错误1)
declare
n1 number := &num1;
n2 number := &num2;
begin
compute1(n1,n2);
dbms_output.put_line('num1:'||n1);
dbms_output.put_line('num2:'||n2);
end;
错误提示:ORA-06550:第5行,第7列
PLS-00905:对象DMS.comput1 无效
ORA-06550:第5行,第7列
PL/SQL statement ignored3.另一种调用方法(错误2)如下:
SQL> var n1 number;
SQL> var n2 number;
SQL> exec :n1:=100;PL/SQL procedure successfully completed
n1
---------
100SQL> exec :n2:=30;PL/SQL procedure successfully completed
n2
---------
30
以上都对。
SQL> exec compute1(:n1,:n2);begin compute1(:n1,:n2); end;ORA-06550: 第 1 行, 第 7 列:
PLS-00905: 对象 DMS.COMPUTE1 无效
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
n1
---------
100
n2
---------
30出错了,为什么呢?请大家看一下,谢谢
is
v1 number;
v2 number;
begin
v1 := num1/num2;
v2 := mod(num1,num2);
num1 := v1;
num2 := v2;
end;
SQL> var n1 number;
SQL> var n2 number;
SQL> exec compute1(:n1,:n2);PL/SQL 过程已成功完成。SQL>
SQL> var n1 number;
SQL> var n2 number;
SQL> exec :n1:=100;
SQL> exec :n2:=30;
是什么意思呢?
我的过程确实错了,谢谢大家