Среда: Oracle 11g У меня есть тип ty1 с некоторыми аргументами, такими как s1, s2.
Если я использую его так:
SELECT ty1(s1,s2) BULK COLLECT INTO l_collection_of_ty1 FROM ...
Я получаю коллекцию ty1.
Теперь, если в одном из вызовов конструктора ty1 возникает исключение, соответствующему элементу моей коллекции присваивается значение NULL, но общий SELECT работает (без исключения, коллекция возвращена).
Мой вопрос, могу ли я обнаружить это сразу после SELECT без необходимости перебирать коллекцию?Может быть, есть даже способ получить доступ к исходному сообщению об ошибке аналогично тому, как SQL%BULK_EXCEPTION
делает для DML?
Один из обходных путей, о котором я подумал, - это не использовать конструктор во время BULK COLLECT, а прочитать коллекции s1и s2, затем создайте TYPE в моем собственном цикле, где я могу обработать исключение, но это гораздо больше кода, и я бы предпочел, чтобы в Oracle была какая-то сборка.