SQL Problem

nightsky99

Grand Admiral Special
Mitglied seit
25.11.2001
Beiträge
2.043
Renomée
19
Standort
Wuppertal
Hey!

Ich hätte da mal ein ganz spezielles SQL Problem:

Es geht um die WHERE...IN Klausel. Ich selektiere mehrere Spalten aus meiner Tabelle und übergebe in der Klammer nach dem IN normalerweise die Suchvariablen:

Code:
SELECT customer_name FROM customer WHERE customer_id IN ('1', '3', '7')

Soweit sogut, ich bekomm jetzt also eine Tabelle mit den Namen der Kunden, die als ID 1 oder 3 oder 7 haben.

Das Problem: ich übergebe nicht '1', '3', '7', sondern eine Variable, diese nennt sich :VAR1. In dieser Variable steht ganz genau '1', '3', '7' das drin, allerdings bekomme ich nichts angezeigt.

Meine Vermutung ist, die Variable wird als Gesamtsuchstring übergeben, das bedeutet das mir die IN Klausel nicht nach 1 oder 3 oder 7 sucht, sondern nach " '1', '3', '7' " als Gesamtausdruck.
Kann das jemand bestätigen bzw. weiss jemand wie man das umgeht?

Da häng ich jetzt schon ca. 6 Stunden dran :]
 
Vielen Dank dir Wintermute :)
Es ist zwar nicht die Lösung die ich gesucht habe, aber sie hat mir Anstoß zu einem anderen Weg gegeben.

Es ging ja um PL/SQL, ich arbeite also mit Oracle DB.

Die Lösung ist: erstens das ganze als PL/SQL Funktion mit Rückgabewert in Form einer SQL Anweisung schreiben.
Variablendeklaration (als String) im DECLARE Teil mit der gewünschten Funktion (in meinem Fall eine replace() Funktion), dann im eigentlichen Ausführungsteil die Benutzung dieser String Variablen in der IN Klausel...dann funktionierts.

Nächste (gelöstes) Problem: das ganze mit einem Cursor machen, das funzt nämlich nicht so leicht...habs über einen dynamischen Cursor dann gemacht :)
 
Zurück
Oben Unten