Zum Inhalt springen

Pl/SQL dynamischer Aufbau Variablenname


joe_

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...