Oracle LISTAGG () do sprawdzania użycia

Więc próbuję skorzystać zLISTAGG () funkcja, która po prostu tworzy listę rozdzielaną przecinkami do użycia w podstawowym zapytaniu. Generowanie list działa dobrze i właśnie zastosowałem dane wyjściowe do celów debugowania, w których mogę zobaczyć moją listę, która powinna być:

WARTOŚCI: „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”

Kiedy próbuję przekazać tę zmienną listy do mojego zapytania, ale tylko po to, aby sprawdzić, czy coś wróci, nic nie wróci, ale jeśli skopiuję / przekażę listę prowincji / stanów z góry (tak jak jest) zamiast używać "v_Province" w moim gdzie klauzula, otrzymuję wynik z powrotem. Co ja robię źle?

  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