title: PL/SQL - Split string into an associative array
body: <p>In plsql is there a way to split a string into an associative array?</p>
  
  <p>Sample string: <code>'test1:First string, test2: Second string, test3: Third string'</code></p>
  
  <p>INTO</p>
  
  <pre><code>TYPE as_array IS TABLE OF VARCHAR2(50) INDEX BY VARCHAR2(50);
  a_array as_array;
  
  dbms_output.put_line(a_array('test1')); // Output 'First string' 
  dbms_output.put_line(a_array('test2')); // Output 'Second string'
  dbms_output.put_line(a_array('test3')); // Output 'Third string'
  </code></pre>
  
  <p>The format of the string does not matter for my purposes.  It could be <code>'test1-First string; test2-Second string; test3-Third string'</code>.  I could do this with a very large function manually splitting by commas first and then splitting each of those but I'm wondering if there is something built in to the language.  </p>
  
  <p>Like I said, I am not looking to do it through a large function (especially using substr and making it look messy).  I am looking for something that does my task simpler.</p>