iBatis iterate

Helios co.

Lt. Commander
Registriert
März 2005
Beiträge
1.863
Hallo @all,

NACHTRAG: Da meine ursprüngliche Frage sich von selbst erledigt hat, sich aber im selben Zusammenhang neue Fragen aufgetan haben, bleibe ich einfach bei diesem Thread, ändere aber den Inhalt :)

Folgender Schnippsel (aus einer xml für iBatis) ist immer noch gegeben:

Code:
<sql id="tagFromQuery">
	    tas t1
		<iterate property="tagIndex">
			<isGreaterThan property="tagIndex[].index" compareValue="1">
				JOIN tas t$tagIndex[].index$ USING (content_id)
			</isGreaterThan>
		</iterate>
</sql>

Verwnedet wird das Ganze wie folgt:

Code:
...(SELECT t1.content_id
              FROM <include refid="tagFromQuery"/> WHERE...

tagIndex ist eine (in Java dargestellt als ArrayList) Liste von (tagname, index) - Paaren. index ist ein vortlaufender Wert, der bei jedem Eintrag für tagname um 1 inkrementiert wird.

Die obere dynamische Query macht nichts anderes als JOIN t2...tn USING (content_id)
dranzuhängen.

Ich habe jetzt das Problem, dass ich die Query mittels PLSQL realisieren möchte (aus verschiedenen Gründen). D.h. ich will in der xml Dateil lediglich noch den aufruf der PLSQL Funktion haben.
In der Form: SELECT * FROM TABLE(package.thefunction(#param1#, #param2#));

Nun aber zu meiner Frage: Kann ich die Liste tagIndex irgendwie an eine PLSQL Funktion als Argument übergeben und diese in der Funktion iterieren?
Oder gibt es eine bessere Lösung für das Problem.


Bin komplett am verzweifeln und dankbar für jeden Rat!


Nachtrag:
Hmm, kann mir denn wirklich keiner helfen oder ist die Fragestellung ungünstig formuliert?
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben