Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich habe in einer Oracle 9 DB eine Stored Procedure. Dort habe ich einen Cursor mit 400 Where Bedingungen. Bitte keine Kommentare wegen den 400 Where Bedingungen. Die Tabelle ist halt so und enthält Analysenwerte.

Jetzt ist es aber so, dass von den 400 Bedingungen schon mal ein oder zwei dynamsich wegfallen sollen. Ich meine ich habe mal gelesen, dass man in einer Where Bedingung ein if einbauen könnte. Kennt das jemand?

Frank

ein if in einer where bedingung würde einiges einfacher machen in procedures, packages oder triggern. ist das erste mal, dass ich davon höre. ausprobiert habe ich es schon, leider ohne erfolg. kann mir aber auch nicht vorstellen, dass es klappt. musst du schon ein bißchen über umwege tricksen, z.b. mit or bedingungen, not exists, der dual tabelle, unterabfragen etc.

sollte du was bezgl. dem if heraus finden, bitte posten...

Hallo Frank,

du kannst doch in den Where-Bedingungen so etwas einbinden:

WHERE ...

AND ( ( p_bedingung IS TRUE AND anz < 20 )

OR p_bedingung IS FALSE )

...

Ist doch quasi so etwas wie ne IF-Abfrage.

Gruss, Axl

Hallo,

mir ist noch nicht ganz klar, wie du feststellen willst, welche where Bedingungen wann wegfallen sollen.

Wenn vor dem Absetzen des Statements klar ist, welche where Bedingungen greifen und welche nicht kansst du mit dem dynamic sql package von Oracle deine Sql Statements dynamisch erzeugen.

Infos zu dynamic sql siehe hier

Ansonsten mußt du wohl die where Bedingung entsprechend formulieren, wie vonAxlHammer schon gepostet.

Gruß Nils

@axlhammer: das ist auch noch eine möglichkeit, allerdings macht dein beispiel nicht viel sinn. meistens will man ja erreichen, dass der select von der bedingung abhängig ist. ist in deinem fall ja nicht so, also muss man es schon so schreiben:

select name, vorname, email

from mitarbeiter_intern

where p_mitarbeiter_intern=true

union

select name, vorname, email

from mitarbeiter_extern

where p_mitarbeiter_intern=false;

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.