Jak używać parametrów w klauzuli „gdzie wartość w…”?

Działa to, gdy mam tylko jeden kod stanu jako parametr.

Jak mogę uzyskać kod do pracy, gdy mam więcej niż jeden kod_stanu w parm_list?

Wymagania:

(1) Nie chcę kodować kodów stanu w definicji mojego kursora

(2) Chcę zezwolić na więcej niż jeden kod stanu w klauzuli my where

Na przykład: chcę uruchomić ten kod dlaparm_list = („NY”, „NJ”, „NC”). Napotykam trudności w uzgadnianiu pojedynczych cudzysłowów w parm_list z pojedynczymi cudzysłowami w zapytaniu 'where state_code in'.

set serveroutput on;

DECLARE
parm_list varchar2(40);

cursor get_state_codes(in_state_codes varchar2)
is
select state_name, state_code from states
where state_code in (in_state_codes);

BEGIN
 parm_list := 'NY';
 for get_record in get_state_codes(parm_list) loop
  dbms_output.put_line(get_record.state_name || get_record.state_code);
 end loop;
END;

questionAnswers(2)

yourAnswerToTheQuestion