Я пишу триггер обновления и борюсь с утверждением Update:оператор Update в SQL
Заявление, как показано ниже:
UPDATE ARGUS_APP.CMN_REG_REPORTS CARR
SET CARR.DATE_SUBMITTED =
(
SELECT To_Date(M.ACKNOWLEDGMENTHEADER.MESSAGEDATE,'YYYYMMDDHH24MISS') Messagedate
FROM esm_owner.MESSAGES M
WHERE M.ACKNOWLEDGMENTHEADER.MESSAGESENDERIDENTIFIER='PMDA'
)
WHERE CARR.DATE_SUBMITTED =
(
SELECT CARR.DATE_SUBMITTED
FROM esm_owner.safetyreport sr,esm_owner.MESSAGES M,ARGUS_APP.CMN_REG_REPORTS CARR
WHERE sr.report_id=CARR.esm_report_id
AND M.msg_id = sr.msg_id
AND M.ACKNOWLEDGMENTHEADER.MESSAGESENDERIDENTIFIER='PMDA'
)
Я получаю ORA: 01427 каждый раз.
структура таблицы, как показано ниже:
У меня есть 3 таблицы
- ARGUS_APP.CMN_REG_REPORTS CARR ............., имеющий столбцы DATE_SUBMITTED (который я хочу для обновления) и esm_report_id, который объединяется с report_id отчета о безопасности
- ESM_OWNER.SAFETYREPORT SR ............ с столбцами report_id и MSG_ID (соединенный с msg_id таблицы СООБЩЕНИЯ)
- СООБЩЕНИЯ M .......... имеющие столбцы MSG_ID и ACKNOWLEDGME NTHEADER.MESSAGESENDERIDENTIFIER
Пожалуйста, помогите мне решить эту проблему.
Один из ваших вложенных запросов возвращаются более одной строки, которая является то, что вызывает ошибку. Из вашего вопроса неясно, как вы хотите это решить. –
Либо 'Сообщения' не уникальны в' MESSAGESENDERIDENTIFIER', либо у вас что-то не так с вашим другим подзапросом ... Я не вижу, как мы можем помочь без дополнительной информации, и мы, конечно, не можем помочь быстрее, чем вы может работать для себя .... – Ben