Как проверить, содержит ли массив определенную строку?

У меня есть массив строк. Я хочу проверить, присутствует ли конкретная строка в массиве.

DECLARE
  TYPE v_array IS TABLE OF VARCHAR2(200);
  ais_array v_array;
BEGIN
  ais_array := ('Lb1','Lb2','Lb3','Lb613');
  IF 'Lb1' IN ais_array THEN
     dbms_output.put_line('found');
  END IF;
END;

Оператор IN не работает. Я попытался сделать select * в этом типе, а затем с помощью IN , но это тоже не сработало.

Какие-либо предложения?

11
nl ja de
Поскольку у Oracle есть встроенный тип коллекции, называемый VARRAY, v_array является плохим именем для типа вложенной таблицы. Это может смутить глупого человека.
добавлено автор APC, источник

1 ответы

Попробуйте члена :

IF 'Lb1' member of ais_array THEN
  dbms_output.put_line('found');
END IF;

Oracle представила несколько операторов набора для работы с коллекциями в 10g. Пожалуйста, прочитайте документацию, чтобы узнать больше .

25
добавлено
Большой!! Это то, что я искал. простой n чистый. Большое спасибо :-)
добавлено автор user1394523, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Oracle RU
Oracle RU
303 участник(ов)

Русскоязычная группа по Oracle. — Архитектура СУБД — PL/SQL — Оптимизация — Администрирование — Вакансии Oracle (указать инфу по вилке ЗП и удалёнке) Приглашайте коллег :-) Запрещены: личные оскорбления, обсуждения оффтопик вопросов политики и религии