Stefan87 Geschrieben 2. März 2010 Geschrieben 2. März 2010 Hi erstmal, ich habe hier ein kleines Problem was vielleicht echt einfach ist. Ich habe eine PL/SQL Function die mir einen SELECT erstellt und liefert z.B. CREATE OR REPLACE FUNCTION TEST ( TT varchar2) RETURN varchar2 IS Begin int_sqlstring := 'SELECT * FROM TEST'; RETURN int_sqlstring; END TEST ; Jetzt möchte ich wissen wie der SQL aussieht der diesen SELECT ausführt. Versucht habe ich es schon mit einem Execute, allerdings funktioniert der nicht bei Funktionen.... Hoffentlich das war verständlich.
dr.dimitri Geschrieben 2. März 2010 Geschrieben 2. März 2010 Jetzt möchte ich wissen wie der SQL aussieht der diesen SELECT ausführt. Genauso, wie wenn Du eine der anderen Funktionen verwendest: SELECT TEST('ein Argument') from dual Dim EDIT: Deine Funktion enthält Fehler, das ist dir bewußt oder?
Stefan87 Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 ja sorry hab bei der Funktion die Deklaration mal weg gelassen war ja nur als Beispiel.... Ich möchte allerdings nicht dass mir das Ergebnis der Funktion als Spalte geliefert wird sondern der SELECT den die Funktion liefert ausgeführt wird. Bei deiner Vorschlag würde es so aussehen SELECT Test(‘x’) from dual; Ergebnis: Spalte : Test(x) Wert : SELECT * FROM TEST Und ich möchte den SELECT nicht angezeigt bekommen, ich möchte das er ausgeführt wird so das ich das Ergebnis sehe.
dr.dimitri Geschrieben 2. März 2010 Geschrieben 2. März 2010 Das ist etwas aufwändiger und wird mit sog. Pipelined Functions gemacht. Hier mal ein Beispiel. Dim
Stefan87 Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 Ja das geht allerding nur wenn mir vorher bekannt ist wie die Tabelle aussieht. Bei meiner Function ist es aber so das je nachdem welche Werte übergeben werden die Tabelle komplett anders aussehen kann. Hast du dafür auch eine Idee?
dr.dimitri Geschrieben 2. März 2010 Geschrieben 2. März 2010 Vielleicht kannst Du mal das eigentliche Ziel schildern, vielleicht kann ich dann was dazu sagen. Dim
Stefan87 Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 Wie gesagt habe ich eine Function die je nachdem welche Werte als Parameter geliefert werden mir einen SELECT zusammenstellt. Ich möchte nun eine SQL Befehl haben der den SELECT den die Function als Rückgabewert liefert ausführt. Nicht einen SQL Befehl der mir einfach den Rückgabewert ausgibt.
dr.dimitri Geschrieben 2. März 2010 Geschrieben 2. März 2010 Das ist mir schon klar, nur so wie Du es dir vorstellst ist das nicht möglich, daher würde ich gerne wissen wofür genau Du esbrauchst vielleicht finet sich was anderes. Dim
Stefan87 Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 Eine alternative hätte ich wollte halt nur wissen ob es so möglich wäre. Aber danke nochmal fürs Kopfzerbrechen
dbwizard Geschrieben 2. März 2010 Geschrieben 2. März 2010 Eine alternative hätte ich wollte halt nur wissen ob es so möglich wäre. Aber danke nochmal fürs Kopfzerbrechen hmmm.. suchst du eher in dieser Richtung ? (Dynamisches Erstellen von SQL ) http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm Gruss
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden