23. April 200917 j Hallo, kann ich mir bei PL/SQL einen Variablennamen dynamisch in einer Schleife aufbauen? Beispiel: Ich habe 3 Variablen: tag1, tag2, tag3 In einer Schleife möchte ich in der WHERE Klausel eines SQL statements beim ersten Durchlaufen auf tag1 vergleichen, beim nächsten Durchlauf auf tag2 etc. Ich hätte mir das so gedacht: 1 Laufvariable count ... WHERE stunde = tag||count (--> sollte für ihn tag1 bedeuten) Wie könnte man soetwas lösen? Danke
23. April 200917 j Hallo, kann ich mir bei PL/SQL einen Variablennamen dynamisch in einer Schleife aufbauen? Beispiel: Ich habe 3 Variablen: tag1, tag2, tag3 In einer Schleife möchte ich in der WHERE Klausel eines SQL statements beim ersten Durchlaufen auf tag1 vergleichen, beim nächsten Durchlauf auf tag2 etc. Ich hätte mir das so gedacht: 1 Laufvariable count ... WHERE stunde = tag||count (--> sollte für ihn tag1 bedeuten) Wie könnte man soetwas lösen? Danke - Du wirst Dynamisches SQL benutzen müssen...Allerdings würde ich solch etwas nur machen, wenn wirklich nichts anderes mehr übrigbleibt. (Stichwort Bindvariablen, Loop...) Gruss
26. April 200917 j Danke für deine Antwort. Ich habe nun versucht das Problem anders zu lösen. Leider habe ich noch eine weitere wesentliche Frage: Ich frage nun in einer Schleife einige Daten ab. Manchmal kann es dabei vorkommen, dass eine leere Spalte abgefragt wird, also eine no_data_found exception auftritt. Wie kann ich es anstellen, dass die Schleife nicht abgebrochen wird und die no_data_found exception ignoriert wird bzw halt einfach ein Leerstring zurückgegeben wird?
29. April 200917 j indem du die Zeile in der die Exception fliegen kann in einen eigenen Block setzt und mit einer Exception explizit abfängst... Beispiel: ... begin ... if ... then ... begin deine_Operation; exception when deine_exception then null; end; ... end if; ... end; Wenn bei deine_Operation ein Fehler kommt geht er direkt in den zugehörigen Exceptionblock. Dort wird null ausgeführt wenn es sich um die von dir angegebene Exception handelt (z.B: no_data_found). Ist es eine andere Exception geht er weiter in den Exceptionblock des darüber liegenden Blocks, wenn der eine hat. Wenn nicht bekommt der Anwender den Fehler...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.