![]() |
Datenbank: Oracle • Version: 10g • Zugriff über: uninteressant
PL/SQL - Statement - Where-Klausel dynamisch zusammensetzen?
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:
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.
for r_Data in
( SELECT [...] FROM [...] WHERE [...] || xFoo || xBar ) LOOP [...] END LOOP; Weiß jemand Rat? [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: PL/SQL - Statement - Where-Klausel dynamisch zusammenset
Hallo,
das geht eigentlich relative einfach, Beispiele findest Du u. a. ![]() bei Dynamisches SQL mit REF Cursorn oder EXECUTE IMMEDIATE, da hast Du beim Erstellen der SQL-Statements eigentlich alle Freiheiten. |
Re: PL/SQL - Statement - Where-Klausel dynamisch zusammenset
Danke Stephan für den Tipp.
Execute Immediate passt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz