title: ORA-00942: table or view does not exist on Materialized View refresh
body: <p>I encounter an error whenever I refresh my Materialized view, so I created a PIPELINE function and left join it to my Main table, the creation of Materialized view runs smoothly, but when I tried to do a refresh, then the error message appeared.</p>
  <blockquote>
  <p>ORA-00942: table or view does not exist</p>
  </blockquote>
  <p>Please, need help on this.</p>
  <pre><code>create materialized view mv_test as 
  SELECT
      id,
      id1,
      id2,
      id3,
      id4,
      id5,
      lpad(substr(ab.column_value, 3), 4, '0') ab
  FROM
      tbl1 t1 left join 
              TABLE ( split_str_by_delim(t1.id1, '|')) ab on substr(ab.column_value,1,2) = 
  'AB'
  WHERE id2= sysdate;
  </code></pre>
  <p>Refresh:</p>
  <pre><code>begin
      dbms_mview.refresh('MV_TEST','C');
  end;
  /
  </code></pre>
  <p>I also tried the snapshot refresh, and still doesn't work.</p>
  <pre><code>BEGIN 
      DBMS_SNAPSHOT.REFRESH( '&quot;MV_TEST&quot;','C'); 
  end;
  </code></pre>
  <p>Below is the error I encounter.</p>
  <pre><code>Materialized view MV_TEST created.
  
  
  Error starting at line : 22 in command -
  begin
      dbms_mview.refresh('MV_TEST','C');
  end;
  Error report -
  ORA-00942: table or view does not exist
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 3020
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 2432
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 88
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 253
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 2413
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 2976
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 3263
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT_KKXRCA&quot;, line 3295
  ORA-06512: at &quot;SYS.DBMS_SNAPSHOT&quot;, line 16
  ORA-06512: at line 2
  00942. 00000 -  &quot;table or view does not exist&quot;
  *Cause:    
  *Action:
  </code></pre>
  <p>Edit: Added my Function PIPELINE and TYPE</p>
  <p>Type:</p>
  <pre><code>create or replace TYPE split_tbl as TABLE OF VARCHAR2(32767);
  </code></pre>
  <p>Function:</p>
  <pre><code>create or replace FUNCTION split_str_by_delim (p_list VARCHAR2, p_del 
  VARCHAR2)
     RETURN split_tbl
     PIPELINED IS
     l_idx PLS_INTEGER;
     l_list VARCHAR2 (32767) := p_list;
     l_value VARCHAR2 (32767);
  BEGIN
     LOOP
        l_idx := INSTR (l_list, p_del);
  
        IF l_idx &gt; 0 THEN
           PIPE ROW (SUBSTR (l_list, 1, l_idx - 1));
           l_list := SUBSTR (l_list, l_idx + LENGTH (p_del));
        ELSE
           PIPE ROW (l_list);
           EXIT;
        END IF;
     END LOOP;
  
     RETURN;
  END split_str_by_delim;
  </code></pre>
  <p>regards,
  NelzKi</p>