Previous |
Next |
A dense associative array (indexed by integer) has no gaps between elements—every element between the first and last element is defined and has a value (which can be NULL
). You can traverse a dense array with a statement, as in the following example.
When inserted in the executable part of the example in Populating Associative Arrays, after the code that populates the employees_jobs
array, the statement in the following example prints the elements of the employees_jobs
array in the order in which they were stored. Their storage order was determined by the ORDER
BY
clause in the declaration of employees_jobs_cursor
, which was used to declare employees_jobs
(see the example in Declaring Associative Arrays).
The upper bound of the statement, employees_jobs
. COUNT
, invokes a collection method that returns the number of elements in the array. For more information about COUNT
, see Oracle Database PL/SQL Language Reference.
Traversing a Dense Associative Array
-- Code that populates employees_jobs must precede this code:
FOR i IN 1..employees_jobs.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(
RPAD(employees_jobs(i).first_name, 23) ||
RPAD(employees_jobs(i).last_name, 28) || employees_jobs(i).job_id);
END LOOP;
Result:
William Gietz AC_ACCOUNT Shelley Higgins AC_MGR Jennifer Whalen AD_ASST Steven King AD_PRES Lex De Haan AD_VP Neena Kochhar AD_VP John Chen FI_ACCOUNT ... Jose Manuel Urman FI_ACCOUNT Nancy Greenberg FI_MGR Susan Mavris HR_REP David Austin IT_PROG ... Valli Pataballa IT_PROG Michael Hartstein MK_MAN Pat Fay MK_REP Hermann Baer PR_REP Shelli Baida PU_CLERK ... Sigal Tobias PU_CLERK Den Raphaely PU_MAN Gerald Cambrault SA_MAN ... Eleni Zlotkey SA_MAN Ellen Abel SA_REP ... Clara Vishney SA_REP Sarah Bell SH_CLERK ... Peter Vargas ST_CLERK Adam Fripp ST_MAN ... Matthew Weiss ST_MAN