title: ORA-01422: exact fetch returns more than requested number of rows error
body: <p>I want to pass exch_name to main query in the where clause
  but it is giving error </p>
  
  <pre><code>ORA-01403: no data found
  </code></pre>
  
  <p>Issue 2:</p>
  
  <p>I have passed hard-coded value instead of exch_name for testing purpose
  <code>MV_sum.exch = 'ASX'</code> but its giving error</p>
  
  <pre><code>ORA-01422: exact fetch returns more than requested number of rows
  </code></pre>
  
  <p>Please guide me on the same....</p>
  
  <pre><code>DECLARE
    exch_name     VARCHAR2(200);
    v_exch        VARCHAR2(1000);
    output        VARCHAR2(4000);
    abc           VARCHAR2(4000);
    v_str         VARCHAR2(4000);
    err_code      VARCHAR2 (4000);
    err_msg       VARCHAR2 (4000);
  
    CURSOR tbl IS
      SELECT DISTINCT MV_sum.exch
        into exch_name
        FROM LLDMA.MERCAUDIT_VOLUME_AGG_SUMMARY MV_sum,
             EXCHANGE_MAPPING ex_map
        WHERE MV_SUM.EXCH = ex_map.agora_exchange
        ORDER BY 1;
  BEGIN
    DBMS_OUTPUT.PUT_LINE (exch_name);
  
    for x in tbl loop
      EXIT WHEN tbl%NOTFOUND;
  
     select 'ICTO-10510' ||','|| MV_sum.exch ||','|| 
            to_char(to_date(MV_sum.TRADEDATE, 'yymmdd'), 'dd-Mon-yyyy')  ||
            ','|| '' ||','|| 'TDV' ||','|| MV_sum.new ||','|| "NEW"  ||
            ','|| '' || ','|| ''
       into abc  
       from LLDMA.MERCAUDIT_VOLUME_AGG_SUMMARY MV_sum ,
            EXCHANGE_MAPPING ex_map
       where (TRADEDATE between TO_CHAR  (sysdate-545, 'YYMMDD')
                            and TO_CHAR  (sysdate, 'YYMMDD') ) and
             MV_SUM.EXCH = ex_map.agora_exchange and
             MV_sum.exch = 'ASX' ---Passing hardcoded value for testing
             --and MV_sum.exch = exch_name --If I uncomment this "ORA-01403: no data found"error is coming
       group by MV_sum.exch,
                to_char(to_date(MV_sum.TRADEDATE, 'yymmdd'), 'dd-Mon-yyyy' ),
                MV_sum.new;
  
      EXECUTE IMMEDIATE abc into output;
  
      DBMS_OUTPUT.PUT_LINE (output);
    end loop;
  EXCEPTION
    WHEN OTHERS THEN
      err_code := SQLCODE;
      err_msg := SUBSTR(SQLERRM, 1, 200);
  
      DBMS_OUTPUT.PUT_LINE  (err_code || err_msg);
  END;
  </code></pre>