CREATE OR REPLACE PACKAGE p1
AS
PROCEDURE exem1 (p_value OUT BOOLEAN);
PROCEDURE exem2 (p_value OUT BOOLEAN);
END p1;
/
CREATE OR REPLACE PACKAGE body p1
AS
PROCEDURE exam1 (p_value IN VARCHAR2 DEFAULT 'NULL')
IS
if exam2(p_value);
then
p_value:= true;
DBMS_OUTPUT.put_line ('successful!!!!');
else
p_value:=false
DBMS_OUTPUT.put_line ('Error!!!!');
BEGIN
end if;
END exam1;
end p1;/
但它不起作用
2条答案
按热度按时间55ooxyrt1#
我已经修改了您的代码,使其能够编译和运行而不会出错:
r9f1avp52#
它不起作用,因为你有一个
OUT
规范中的参数和IN
声明中的参数。与之相比:
头和正文中的过程需要有相同的签名。
完成之后,就可以修复各个过程中的其他语法错误,但首先要做的是确定过程有哪些输入和输出,并使签名保持一致。