В Pl_sql можно и без особых проблем отслеживать исключительные ситуации на возникновение ошибок. Так что можно из РНР запускать Оракл процедуру (единственное надо будет проверить тип передаваемых параметров, что бы они совпадали с типом ожидаемым Ораклом) и ждать ответа :
0 -- ошибка в параметрах запроса;
1 -- таблица с выходными данными заполнена;
А всю логику возлажить на плечи PL-SQL программиста