CREATE OR REPLACE PACKAGE Learning_package AS
PROCEDURE add_person(name_person people.C_Name%type,
mail_person people.C_mail%type,
age_person people.C_age%TYPE);
END Learning_package;
CREATE OR REPLACE PACKAGE BODY Learning_package AS
PROCEDURE add_person(name_person people.C_Name%type,
mail_person people.C_mail%type,
age_person people.C_age%TYPE)
IS
BEGIN
INSERT INTO people (C_Name, C_mail, C_age)
VALUES (name_person, mail_person, age_person);
END add_person;
END Learning_package;
/
BEGIN
Learning_package.add_person('john', '[email protected]', 20);
END;
出現錯誤:
包體“Learning_package”有錯誤 PL/SQL:在第 3 行找不到被稱為“Learning_package”的程式單元
有人能幫我嗎?
uj5u.com熱心網友回復:
您的代碼很好,除了您需要:
- 確保您有一個
people包含預期列的表格;和 /在每個 PL/SQL 陳述句末尾的新行中使用陳述句終止符。
像這樣:
CREATE OR REPLACE PACKAGE Learning_package AS
PROCEDURE add_person(name_person people.C_Name%type,
mail_person people.C_mail%type,
age_person people.C_age%TYPE);
END Learning_package;
/
CREATE OR REPLACE PACKAGE BODY Learning_package AS
PROCEDURE add_person(name_person people.C_Name%type,
mail_person people.C_mail%type,
age_person people.C_age%TYPE)
IS
BEGIN
INSERT INTO people (C_Name, C_mail, C_age)
VALUES (name_person, mail_person, age_person);
END add_person;
END Learning_package;
/
BEGIN
Learning_package.add_person('john', '[email protected]', 20);
END;
/
注意:年齡不是存盤的好東西,因為它很快就會過時。相反,您應該存盤出生日期,當您需要年齡時,您可以根據出生日期和今天的日期計算它。
db<>在這里擺弄
uj5u.com熱心網友回復:
您是否還可以在創建包后添加一個塊終止符并將其更改AS為IS(/)。
CREATE OR REPLACE PACKAGE Learning_package IS
END Learning_package;
/
包體也是如此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455866.html
