एसक्यूएल में आप केवल तालिका प्रकार का उपयोग कर सकते हैं जो स्कीमा स्तर पर परिभाषित किया गया है (पैकेज या प्रक्रिया स्तर पर नहीं), और इंडेक्स-बाय टेबल (एसोसिएटिव सरणी) को स्कीमा स्तर पर परिभाषित नहीं किया जा सकता है। तो - आपको नेस्टेड टेबल को इस तरह परिभाषित करना होगा
create type exch_row as object (
currency_cd VARCHAR2(9),
exch_rt_eur NUMBER,
exch_rt_usd NUMBER);
create type exch_tbl as table of exch_row;
और फिर आप इसे SQL में TABLE ऑपरेटर के साथ उपयोग कर सकते हैं, उदाहरण के लिए:
declare
l_row exch_row;
exch_rt exch_tbl;
begin
l_row := exch_row('PLN', 100, 100);
exch_rt := exch_tbl(l_row);
for r in (select i.*
from item i, TABLE(exch_rt) rt
where i.currency = rt.currency_cd) loop
-- your code here
end loop;
end;
/