Oracle LISTAGG () para consultar o uso

Então, eu estou tentando fazer uso doLISTAGG () função para simplesmente criar uma lista delimitada por vírgulas para usar dentro de uma consulta subjacente. A geração de listas funciona bem e eu apenas apliquei uma saída para propósitos de depuração onde posso ver minha lista como deveria ser:

VALORES: «AB», «AZ», «BC», «CA», «CT», «DC», «FL», «FO», «GA», «IL», «KS», «MA», 'MB', 'ME', 'MN', 'MS', 'MT', 'NB', 'NC', 'NL', 'NOVA ESCÓCIA', 'NS', 'NT', 'NU', ' NY, ON, ONTÁRIO, OR, PE, QC, QUEBEC, QUÉBEC, SASKATCHEWAN, SK, TX, VT, WA. 'YT'

Quando eu tento passar essa variável de lista para minha consulta, só para ver se alguma coisa vai voltar, nada volta, mas se eu copiar / passar da lista de províncias / estados acima (como está) em vez de usar "v_Province" no meu onde cláusula, eu recebo um resultado de volta. O que estou fazendo de errado?

  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;
  /

questionAnswers(2)

yourAnswerToTheQuestion