使用批量收集將記錄提取到嵌套表中。我想用存在的方法搜索一個記錄,但它沒有解決。來了解存在的方法使用索引不查找的值。我是否需要瀏覽每條記錄並搜索比賽?有沒有最短的方法來做到這一點,因爲我將爲大量記錄使用相同的邏輯?閱讀在網站批量收集不能正常使用與varchar作爲關鍵使用嵌套表的assosciative數組。也不想讀取每條記錄並將其存儲在散列表中,因爲它會降低性能。關於PLSQL批量收集和嵌套表
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子句的查詢?這將使它更快,並使用更少的內存。 –
不能使用where子句,因爲即使當我有大量數據時,它也需要很長時間。 – Arav
「不能」?如果這是一個查詢性能問題,那麼我幾乎100%肯定在PL/SQL中進行過濾不會讓它更快。 –