proc_1、proc_2、およびproc_3という3つのパブリックプロシージャを含むhellofromというパッケージを作成します。これらの各プロシージャは、DBMS_OUTPUT.PUT_LINE()を使用して、「Hello from Proc x」というメッセージを表示する必要があります。ここで、「x」は1または2または3です。 私はこれを手伝ってくれました。今、私はProc 1,2,3をお互いに呼び出そうとしています。 これは私が思いついたコードであり、間違いはその下にあります。それが何を意味するか分かりません。私は関数を追加しました。hellofromというパッケージを作成します。 Proc_1はProc_2、Proc_2を呼び出し、Proc_3を呼び出します。
CREATE OR REPLACE PACKAGE BODY hellofrom IS
FUNCTION call_proc --private function
(p_proc_1 VARCHAR2,
p_proc_2 VARCHAR2,
p_proc_3 VARCHAR2)
RETURN VARCHAR2 IS
BEGIN
IF p_proc_1 THEN
DBMS_OUTPUT.PUT_LINE('Hello from Proc_2');
ELSEIF p_proc_2 THEN
DBMS_OUTPUT.PUT_LINE('Hello from Proc_3');
ELSE
DBMS_OUTPUT.PUT_LINE('Hello');
END IF;
END call_proc;
PROCEDURE proc_1
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello from Proc 1');
END proc_1;
PROCEDURE proc_2
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello from Proc 2');
END proc_2;
PROCEDURE proc_3
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello from Proc 3');
END proc_3;
END hellofrom;
"p_proc_1はTHEN IF" これは意味がありません。 p_pfoc_1は文字列でありブール値ではないので、入力パラメータの期待値は? – OldProgrammer
'elseif'は' elsif'でなければなりません。 –