How can I print an associative array as a matrix

Viewed 155

I'm creating 2 associative arrays in which I put random values from 0 to 30, and after that I want to print then as a matrix. Is there a way I can do that?

Here is my code:

set serveroutput on
DECLARE 
    TYPE MyTab IS TABLE OF NUMBER INDEX BY VARCHAR2(10);
    mat1 MyTab;
    mat2 MyTab;
    v_n NUMBER(2);
    v_m NUMBER(2);
    v_nr NUMBER(3);
    v_dim NUMBER(3);
BEGIN
   v_n := round(dbms_random.value(2,5));
   v_m := round(dbms_random.value(2,5));
   v_nr := 1;
   v_dim := v_n*v_m;
   DBMS_OUTPUT.PUT_LINE(v_n||'    '||v_m);
   FOR i in 1 ..v_dim LOOP
       mat1(v_nr) := round(dbms_random.value(0,30));
       v_nr := v_nr+1;
   END LOOP;
   v_nr := 1;
   FOR i in 1 ..v_dim LOOP
       mat2(v_nr) := round(dbms_random.value(0,30));
       v_nr := v_nr+1;
   END LOOP;
   FOR i in 1 ..v_dim LOOP
       DBMS_OUTPUT.PUT_LINE(mat1(i));    
    END LOOP; 
   DBMS_OUTPUT.PUT_LINE(chr(10));
   FOR i in 1 ..v_dim LOOP
       DBMS_OUTPUT.PUT_LINE(mat2(i));    
   END LOOP;
END;
/
2 Answers
Related