#sql #oracle #oracle-apex #apex #oracle-apex-5.1
#sql #Oracle #oracle-apex #apex #oracle-apex-5.1
Вопрос:
Прямо сейчас я вставляю значения в таблицу со значениями insert или update, например:
IF :P903_PYMT_MTH_ID IS NOT NULL
THEN
INSERT INTO "TABLE_NAME" (
PYMT_MTH_ID,
PYMT_MTH_TYPE,
PYMT_MTH_NM,
CRT_DT_TM,
MOD_DT_TM,
USR_NM,
LAST_TXN_DT
)
VALUES (
:P903_PYMT_MTH_ID,
:P903_PYMT_MTH_TYPE,
:P903_PYMT_MTH_NM,
sysdate,
sysdate,
:P903_USR_NM,
:P903_LAST_TXN_DT
);
COMMIT;
Но теперь в офисе им нужно, чтобы это было сделано с недавно созданным пакетом:
PROCEDURE P_NEW(PN_PYMT_MTH_ID NUMBER,
PV_PYMT_MTH_TP VARCHAR2,
PV_PYMT_MTH_NM VARCHAR2,
PV_USR_NM VARCHAR2,
PN_RESULTADO OUT NUMBER) AS
VN_EXISTE NUMBER := 0;
BEGIN
PN_RESULTADO := 0;
SELECT COUNT(1) INTO VN_EXISTE
FROM "TABLE_NAME"
WHERE PYMT_MTH_ID = PN_PYMT_MTH_ID;
Как я могу связать каждый ввод на исходной странице apex с пакетом? Я должен сказать, что я впервые использую пакет, поэтому я совершенно новичок в этой области. Заранее спасибо.
Комментарии:
1. Обратите внимание, вы получите ряд преимуществ, переместив свой код в пакеты, в том числе: производительность, удобство обслуживания, тестирование, потенциальное повторное использование.
Ответ №1:
Чтобы использовать пакет в форме в apex, просто замените код в вашей форме, где вы вручную выполняете вставку, вызовом package amp; procedure . Замените «MYPKG» ниже фактическим именем пакета.
DECLARE
l_out_arg NUMBER;
BEGIN
MYPKG.P_NEW(PN_PYMT_MTH_ID => :P903_PYMT_MTH_ID,
PV_PYMT_MTH_TP => :P903_PYMT_MTH_TYPE,
PV_PYMT_MTH_NM => :P903_PYMT_MTH_NM,
PV_USR_NM => :P903_USR_NM,
PN_RESULTADO => l_out_arg);
END;
Переменную l_out_arg
можно заменить элементом страницы, чтобы вы могли использовать ее в сообщении об успешном завершении вашего процесса или в другом компоненте (другом процессе, ветке), выполняемом после этого процесса страницы.
В качестве примечания, поскольку пакеты APEX 5.1 для таблиц могут создаваться автоматически. Возможно, стоит взглянуть на них. Одним из очень полезных методов, показанных в сгенерированных пакетах, является обнаружение потерянных обновлений с использованием хэша MD5. Это функция, которую легко пропустить, когда приложения пишутся с использованием пакетов.
Комментарии:
1. Большое вам спасибо, это сработало таким образом, но когда я нажимаю создать, строка создается, но в таблице она становится пустой, как будто я вставлял нулевые значения. Скриншот
2. Я решил это, это была небольшая ошибка из моей последовательности в APEX, большое спасибо за вашу помощь. Хорошего дня!
3. Рад слышать, что это сработало 🙂