Сообщение об ошибке, если данные не вставлены в oracle apex

#javascript #oracle #plsql #oracle-apex #apex

Вопрос:

У меня есть запрос на вставку в oracle apex, иногда данные не вставляются по разным причинам (например, написание текста в числовом поле). есть ли способ отобразить сообщение об ошибке, которое проверяет, вставлены ли данные в базу данных или нет?

Комментарии:

1. Пожалуйста, предоставьте как можно больше информации. Это что, форма ? Интерактивная сетка ? Выполняется ли вставка с помощью автоматической обработки строк или это ручной процесс pl/sql ? Без этой информации на этот вопрос трудно ответить…

2. «например, написание текста в числовом поле» gt;gt;gt; так почему бы вам не изменить тип элемента с «Текст» на «Номер» и не позволить Apex беспокоиться об этом?

Ответ №1:

Вот как это можно сделать для процесса страницы типа pl/sql. Пример приведен в таблице образцов отдела.

  1. Создайте 2 скрытых элемента страницы страницы: P48_SUCCESS_MESSAGE и P48_ERROR_MESSAGE
  2. В процессе страницы, на которой выполняется обновление, используйте следующий код
 DECLARE  e_invalid_insert exception; BEGIN  INSERT INTO dept(dname, loc) VALUES (:P48_DNAME,:P48_LOC);  :P48_SUCCESS_MESSAGE := 'Insert succesful'; EXCEPTION WHEN OTHERS THEN  -- below code will also show database error, adjust for your requirements  :P48_ERROR_MESSAGE := 'Insert failed:' ||SQLERRM;   RAISE e_invalid_insert; END;  
  1. Для атрибута «Сообщение об успехе» процесса страницы поставьте amp;P48_SUCCESS_MESSAGE. , Для атрибута «Сообщение об ошибке» процесса страницы поставьте amp;P48_ERROR_MESSAGE.

Проверьте текст справки на наличие «Сообщения об ошибке» и «Сообщения об успешном выполнении» для доступных строк подстановки.

Обратите внимание, что вы указываете, что иногда данные не вставляются по разным причинам (например, написание текста в числовом поле). Как разработчик, вы можете провести проверку, чтобы убедиться, что данные верны, прежде чем процесс вставки будет выполнен. Если проверка завершится неудачно, инструкция insert не будет выполнена (и она не должна выполняться).