Как создать PL/SQL
функцию get_amount
, которая возвращает acc_amount
для acc_id
, и функцию get_date
, которая возвращает acc_date
для acc_id
.
Здесь у вас есть пакет и тело пакета, как я выполняю последние две функции.
Это я работаю как упражнение.
Я думаю, что мой другой код в порядке.
Я новичок в Oracle и pl / sql, возможно, мой вопрос глупый
Извините, если я плохо объяснил, мой английский не очень хорош.
Спасибовсе за ответ!
CREATE OR REPLACE PACKAGE account_api AS
PROCEDURE add_new_account
(
p_acc_id accounts.acc_id%type
, p_acc_name accounts.acc_name%type
, p_acc_amount accounts.acc_amount%type
, p_acc_date accounts.acc_date%type
);
PROCEDURE upd_account
(
p_acc_name accounts.acc_name%type
, p_acc_amount accounts.acc_amount%type
, p_acc_date accounts.acc_date%type
);
PROCEDURE del_accounts
(
p_acc_id accounts.acc_id%type
);
FUNCTION get_amount
(p_acc_id accounts.acc_id%type)
RETURN number;
FUNCTION get_date
(p_acc_date accounts.acc_date%type)
RETURN date;
end account_api;
/
CREATE OR REPLACE PACKAGE BODY account_api AS
PROCEDURE add_new_account
(
p_acc_id accounts.acc_id%type
, p_acc_name accounts.acc_name%type
, p_acc_amount accounts.acc_amount%type
, p_acc_date accounts.acc_date%type
)
IS
BEGIN
INSERT INTO account (acc_id, acc_name, acc_amount, acc_date)
VALUES (acc_seq.nextval, p_acc_id, p_acc_name, p_acc_amount, p_acc_date)
END;
PROCEDURE upd_account
(
p_acc_name accounts.acc_name%type
, p_acc_amount accounts.acc_name%type
, p_acc_date accounts.acc_name%type
)
IS
BEGIN
UPDATE accounts
SET acc_naziv = p_acc_naziv
, acc_amount = p_acc_amount
, acc_date = p_acc_date
WHERE ---------------------------------
COMMIT;
END;
PROCEDURE del_accounts
(
p_acc_id accounts.acc_id%type
)
DELETE FROM accounts WHERE acc_id = p_acc_id;
COMMIT;
FUNCTION get_amount
(
p_acc_id accounts.acc_id%type
)
FUNCTION get_date
(
p_acc_id accounts.acc_id%type
)