Oracle LISTAGG () для запросов использования

Поэтому я пытаюсь использоватьLISTAGG () функция для простого создания списка через запятую для использования в базовом запросе. Генерация списка работает нормально, и я просто применил вывод для целей отладки, где я могу видеть свой список, как и должно быть:

ЗНАЧЕНИЯ: «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', ' Нью-Йорк», 'ON', 'ОНТАРИО', 'ИЛИ', 'ЧП', 'КК', 'Квебек', 'QUÉBEC', 'Саскачеван', 'SK', 'TX', 'VT', 'WA' «УТ»

Однако, когда я пытаюсь передать эту переменную списка в свой запрос, просто чтобы посмотреть, получится ли что-нибудь, ничего не вернется, но если я скопирую / пропущу список провинций / состояний сверху (как есть) вместо использования "v_Province" в моем где пункт, я получаю результат обратно. Что я делаю неправильно?

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

Ответы на вопрос(2)

Ваш ответ на вопрос