【发布时间】:2018-01-06 02:33:25
【问题描述】:
我正在 Oracle Apex 中处理我的大学数据库项目,并在尝试使用以下代码编译正文包时收到 ORA-24344: success with compilation error:
CREATE OR REPLACE PACKAGE BODY band_price_package AS
-- Function that checks if a band has a manager
FUNCTION agent_present(band_id BAND.Band_id%TYPE)
RETURN BOOLEAN
IS
BEGIN
IF BAND.Agent_firstname IS NULL
AND BAND.Agent_lastname IS NULL
AND BAND.Agent_phone IS NULL
AND BAND.Agent_email IS NULL
THEN
RETURN FALSE;
ELSE
RETURN TRUE;
END IF;
END agent_present;
-- Procedure that gets the band hire price including agent fee
PROCEDURE get_band_cost(band_id IN BAND.Band_id%TYPE,
band_cost OUT BOOKING.Agreed_band_price%TYPE)
IS
BEGIN
IF agent_present(band_id)
THEN
band_cost := BOOKING.Agreed_band_price * 1.25;
ELSE
band_cost := BOOKING.Agreed_band_price;
END IF;
END get_band_cost;
END band_price_package;
/
以下规范已编译,没有任何错误:
CREATE OR REPLACE PACKAGE band_price_package AS
-- Function that checks if a band has a manager
FUNCTION agent_present(band_id BAND.Band_id%TYPE)
RETURN BOOLEAN;
-- Procedure that gets the band hire price including agent fee
PROCEDURE get_band_cost(band_id IN BAND.Band_id%TYPE,
band_cost OUT BOOKING.Agreed_band_price%TYPE);
END band_price_package;
/
【问题讨论】:
-
agent_present函数指的是诸如band.agent_firstname之类的东西,它们没有在任何地方声明。您需要查看编译错误。