Einzelnen Beitrag anzeigen

Pilloker
(Gast)

n/a Beiträge
 
#1

PL/SQL - Statement - Where-Klausel dynamisch zusammensetzen?

  Alt 22. Mai 2009, 11:25
Datenbank: Oracle • Version: 10g • Zugriff über: uninteressant
Hallo,

ich muss in einem Package die Where-Klausel eines Statements dynamisch zusammensetzen.
Ziel ist es, je nachdem, ob bestimmte Bedingungen erfüllt sind, eine Einschränkung hinzufügen, oder weglassen.
Jetzt habe ich mir gedacht, dass ich die Einschränkungen als String vorbelege und dann einfach an das Statement anhänge, aber irgendwie haut das nicht so hin.

Ich möchte im Prinzip die Where-Klausel über Variablen dynamisch zusammenbauen können.

Delphi-Quellcode:
[...]
xFoo VARCHAR2(32767);
xBar VARCHAR2(32767);
[...]
IF foo THEN
   xFoo := ' AND pFoo=1';
END IF;

IF bar THEN
   xBar := ' AND pBar=1';
END IF;
SQL-Code:
for r_Data in
(
SELECT [...]
FROM [...]
WHERE [...] || xFoo || xBar
)
LOOP
[...]
END LOOP;
Das haut so natürlich nicht hin, da die UND-Verknüpfung die beiden Variablen an das letzte Where-Element anhängt, und diese nicht als eingene Elemente interpretiert.

Weiß jemand Rat?

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat