[英]PL/SQL package - calling a procedure within a package
我是一個 pl/sql 初學者,試圖了解如何在同一個 package 中調用過程。 這是一個樣品 package 主體,帶有 2 個程序。 首先是用於創建員工,其次是在 emp_id 不為空時創建員工卡。 您能否建議我如何在下面的 if 語句塊中進行操作?
非常感謝!
create or replace PACKAGE BODY sample_package
IS
PROCEDURE create_employee(
emp_id IN OUT VARCHAR2,
emp_name IN VARCHAR2,
emp_surname IN VARCHAR2)
IS
BEGIN
schema.package.procedure(
emp_id,
emp_name,
emp_surname
);
IF (emp_id != null) THEN
--how do I call procedure create_id_card
END IF;
END;
PROCEDURE create_id_card(
card_id IN OUT VARCHAR2,
card_name IN VARCHAR2)
IS
BEGIN
schema.package.procedure(
card_id,
card_name
);
END;
END sample_package;
就如此容易:
IF (emp_id is not null) THEN
--how do I call procedure create_id_card
create_id_card(parameter1, parameter2);
END IF;
由於這兩個程序都在同一個 package 中,因此您無需執行任何操作(在其名稱前加上 package 或所有者名稱,如果這就是您的意思)。
我不知道您實際傳遞了哪些參數,所以我將它們命名為parameter_x
。
您必須找到一種在過程 create_employee 中傳遞變量 card_id 和 card_name 的方法,如下所示
PROCEDURE create_employee(
emp_id IN OUT VARCHAR2,
emp_name IN VARCHAR2,
emp_surname IN VARCHAR2)
IS
l_card_id VARCHAR2(100);
l_card_name VARCHAR2(255);
BEGIN
schema.package.procedure(
emp_id,
emp_name,
emp_surname
);
l_card_name:=emp_name;
IF emp_id is not null THEN
create_id_card(l_card_id, l_card_name);
END IF;
END;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.