Oracle Pro * C для вставки с запросом дополнительного выбора, вызывающего ORA-01403: данные не найдены

Я использую код C ++ со встроенным Pro * C (версия: 11.2.0.3.0) для базы данных Oracle. Я использую предложение массовой вставки, как показано ниже:

insert int TBL1 (col1, col2)
select a.col1, b.col2 from TBL2 a, TBL3 b
where a.col1 = :v and a.col2 = b.col2

Я запускаю этот запрос для набора записей для вставки и привязки значений для :v на месте.

Тем не менее, хотя некоторые записи могут быть вставлены, некоторые не удалось с

ORA-01403: no data found

Я вижу из sqlca.sqlerrd[2]количество строк, которые могут быть вставлены. Итак, я знаю, что M out N записей могут быть вставлены. Теперь я хотел бы знать, какие записи потерпели неудачу, поэтому мне нужен список всех a.col1 значения, которые могут вызвать этот сбой.
Есть ли выход? Любая подсказка или направление было бы очень полезно.

1

Решение

Это немного долго для комментария.

Ошибка, на которую вы ссылаетесь — это ошибка PL / SQL, задокументированная Вот. Это не ошибка, что insert будет нормально производить.

Мое предположение состоит в том, что в таблице есть триггер вставки, и этот триггер вызывает проблему.

Также возможно, что ваш код находится в более крупном блоке, и что-то еще в блоке вызывает ошибку.

0

Другие решения


По вопросам рекламы [email protected]