Wie verwende ich Parameter in einer "where value in ..." - Klausel?

Dies funktioniert, wenn ich nur einen Statuscode als Parameter habe.

Wie kann ich Code zum Laufen bringen, wenn ich mehr als einen state_code in parm_list habe?

Bedarf:

(1) Ich möchte die Statuscodes in meiner Cursordefinition nicht hart codieren

(2) Ich möchte in meiner where-Klausel mehr als einen Zustandscode zulassen

Zum Beispiel: Ich möchte diesen Code für ausführenparm_list = ('NY', 'NJ', 'NC'). Ich habe Schwierigkeiten, einfache Anführungszeichen in parm_list mit den einfachen Anführungszeichen in der Abfrage 'where state_code in' in Einklang zu bringen.

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;

Antworten auf die Frage(2)

Ihre Antwort auf die Frage