Хобрук: Ваш путь к мастерству в программировании

Как создать цикл в хранимой процедуре для чтения всех идентификаторов в таблице TIBCO?

У меня есть таблица с идентификаторами, и я хочу передать эти идентификаторы в качестве входных данных для API для получения сведений. URL-адрес API выглядит примерно так: «https://xxx/yyy/id. В настоящее время я могу передать только один идентификатор из таблицы 1 в API и получить результат, но я хочу, чтобы это был повторяющийся процесс или я передал все идентификаторы из таблицы 1 в API, и я не знаю, как это сделать.

Если это были 2 ТАБЛИЦЫ, то я могу использовать функцию IN и получить все идентификаторы из ТАБЛИЦЫ1 и передать их в ТАБЛИЦУ2, поскольку это API, у меня проблемы

ПРИМЕЧАНИЕ. Я работаю над TIBCO.

PROCEDURE Test(
IN rd1 VARCHAR(255), 
OUT result CURSOR(
    Id VARCHAR(255), 
StartTime VARCHAR(255), 
EndTime VARCHAR(255)))
BEGIN
    DECLARE prog_id VARCHAR(255);
    SET prog_id = (Select Id FROM TABLE1(rd1));
    OPEN result FOR SELECT 
            API.Id,
            API.StartTime,
            API.EndTime
                FROM TABLE1(rd1) TAB1 INNER JOIN 
                 API(prog_id) API  ON TAB1.Id = API.Id;
END;

Фактический результат: передается только один идентификатор.

Ожидаемый результат: повторяющийся процесс, в котором он передает все идентификаторы из TABLE1 в TABLE2.


  • Похоже, вы ничего не передаете, и я не совсем понимаю, почему у вас вообще prog_id. Я думаю, вы слишком упростили это; можете ли вы включить более полный минимально воспроизводимый пример? Я думаю, что могу понять, что вы имеете в виду, но вам нужен тип коллекции на уровне схемы, если это даст вам возможность начать. Может быть, что-то подобное? 26.07.2019
  • @AlexPoole Только что изменил описание, надеюсь, это поможет, дайте мне знать, если вам нужна дополнительная информация. 26.07.2019
  • Ваши операторы DECLARE и SET кажутся недопустимым синтаксисом - это похоже на синтаксис SQL Server, и объявление вашей процедуры не выглядит допустимым. Вы уверены, что ваша хранимая процедура компилируется? 26.07.2019
  • @JustinCave Да, это работает, но я получаю только одну строку. Я использую инструмент виртуализации данных под названием TIBCO. Но в моем дубле у меня нет Create, я просто добавил его сюда, но набор и все работает нормально. Моя единственная проблема в том, что я не могу поставить его в петлю. я не знаю как это сделать на оракуле 26.07.2019
  • Так является ли процедура, которую вы опубликовали, процедурой TIBCO? Потому что это не синтаксически корректная процедура PL/SQL. 26.07.2019
  • @JustinCave Да, это процедура TIBCO 26.07.2019
  • ХОРОШО. Итак, проблема заключается в том, как написать процедуру TIBCO, которая делает то, что вы хотите, а не в том, как написать процедуру Oracle PL/SQL, которая делает то, что вы хотите? Это существенно другой вопрос. 26.07.2019
  • @JustinCave Мой плохой изменит теги и заголовок 26.07.2019

Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..