Oracle Формы после запроса FRM-40735 и ORA-01422 - PullRequest
0 голосов
/ 10 апреля 2020

Я хочу отобразить элемент из другой таблицы, я использую триггер POST-QUERY:

SELECT Stock_code
  INTO :exchange.stockcode
  FROM Exchange_Stock
 WHERE Exchange_code = :exchange.Exchange_code;

он выдвигает FRM-40735 и ORA-01422, но отображает некоторые записи (не все) я понятия не имею что не так

1 Ответ

1 голос
/ 10 апреля 2020

Скорее всего, триггер POST-QUERY срабатывает сразу после заполнения полей табличного блока с несколькими записями. Очевидно, что значения Exchange_code не являются уникальными в данных таблицы, тогда как предложение SELECT .. INTO .. FROM ... может содержать только одну запись строки.

Итак, вы можете попытаться отфильтровать результаты, чтобы получить отдельные строки для комбинаций полей каждого параметра, таких как :exchange.Exchange_code & :exchange.code_order вместо только поля :exchange.Exchange_code в условии WHERE:

SELECT Stock_code
  INTO :exchange.stockcode
  FROM Exchange_Stock
 WHERE Exchange_code = :exchange.Exchange_code
   AND code_order = :exchange.code_order;

, где важно получить одну строку из запроса, соответствующего каждой записи в блоке данных. Вы можете добавить еще условие к запросу, если это условие еще не предоставлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...