Veröffentlicht 2. März 201015 j 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.
2. März 201015 j 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?
2. März 201015 j 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.
2. März 201015 j Das ist etwas aufwändiger und wird mit sog. Pipelined Functions gemacht. Hier mal ein Beispiel. Dim
2. März 201015 j 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?
2. März 201015 j Vielleicht kannst Du mal das eigentliche Ziel schildern, vielleicht kann ich dann was dazu sagen. Dim
2. März 201015 j 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.
2. März 201015 j 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
2. März 201015 j Eine alternative hätte ich wollte halt nur wissen ob es so möglich wäre. Aber danke nochmal fürs Kopfzerbrechen
2. März 201015 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.