Используется массовая сборка для извлечения записей во вложенную таблицу. Я хочу найти запись с методом существует, но она не работает. узнал, что существует метод, который использует индекс, не ищет значения. Нужно ли мне перебирать каждую запись и искать совпадение? Есть ли самый короткий способ сделать это, потому что я собираюсь использовать ту же логику для большого набора записей? Чтение на веб-сайтах массовой коллекции не работает должным образом с Assosciative массивом с varchar как ключ, поэтому используются вложенные таблицы. Также не хотите читать каждую запись и хранить ее в hashmap, поскольку она ухудшает производительность.Что касается PLSQL Bulk Collect И вложенной таблицы
Create table sales(
name varchar2(100)
)
insert into sales(name) values('Test');
insert into sales(name) values('alpha');
insert into sales(name) values(null);
declare
type sales_tab is table of varchar2(1000);
t_sal sales_tab;
begin
select name bulk collect into t_sal from sales;
if(t_sal.exists('Test')) THEN
dbms_output.put_line('Test exists');
END IF;
dbms_output.put_line(t_sal.count);
end;
почему бы не просто добавить ИНЕКЕ в запросе? что сделает его как быстрее, так и уменьшит объем памяти. –
Невозможно использовать предложение where, потому что требуется много времени, когда я иду с большими данными, даже если у меня есть индекс на нем. – Arav
«Не может»? Если это проблема с производительностью запросов, то я почти на 100% уверен, что выполнение фильтрации в PL/SQL не ускорится. –