Oracle LISTAGG () para consultas de uso

Así que estoy tratando de hacer uso de laLISTAGG () función para simplemente construir una lista delimitada por comas para usar dentro de una consulta subyacente. La generación de la lista funciona bien y acabo de aplicar una salida para fines de depuración donde puedo ver mi lista como debería ser:

VALORES: 'AB', 'AZ', 'BC', 'CA', 'CT', 'DC', 'FL', 'FO', 'GA', 'IL', 'KS', 'MA', 'MB', 'ME', 'MN', 'MS', 'MT', 'NB', 'NC', 'NL', 'NOVA SCOTIA', 'NS', 'NT', 'NU', ' NY ',' ON ',' ONTARIO ',' OR ',' PE ',' QC ',' QUEBEC ',' QUÉBEC ',' SASKATCHEWAN ',' SK ',' TX ',' VT ',' WA ' , 'YT'

Sin embargo, cuando intento pasar esta variable de lista a mi consulta solo para ver si algo regresará, nada volverá, pero si copio / supero la lista de provincias / estados de arriba (como es) en lugar de usar "v_Province" en mi Donde la cláusula, me devuelven un resultado. ¿Qué estoy haciendo mal?

  DECLARE
     v_PROVINCE varchar2(500);
     v_results varchar2(1000);
  BEGIn
        dbms_output.enable(1000000);  

       Select '''' || LISTAGG(STATE, ''',''') WITHIN GROUP (ORDER BY STATE) || '''' PROV 
       INTO v_PROVINCE
       from (Select distinct STATE from ADDRDATA where STATE IS NOT NULL);

   DBMS_OUTPUT.PUT_LINE('VALUES: ' || v_PROVINCE);

   Select CITY
   INTO v_results
   from VWPERSONPRIMARYADDRESS
   where state in (v_Province)
   AND ROWNUM <= 1;

   DBMS_OUTPUT.PUT_LINE(v_results);


  END;
  /

Respuestas a la pregunta(2)

Su respuesta a la pregunta