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.

Operationen auf Cursor

Empfohlene Antworten

Veröffentlicht

Hallo.

Gegeben sei eine Tabelle PKW, in der unter dem Attribut PKZ verschiedene PKW-Kennzeichen gespeichert sind. Ich möchte mir alle gültigen Kennzeichen aus meinem Landkreis XYZ ausgeben lassen. Und zwar in Form eines Cursors.

Bis jetzt kann ich in meinem SQL Skript nur für definierte Variablen (wort varchar2(30) := 'XYZ';) per IF Abfrage prüfen, ob das Kennzeichen gültig ist. Kann ich IF Abfragen auf Cursor laufen lassen, muss ich Cursor in Variablen "umdefinieren" oder empfiehlt ihr mir sonstige Vorgehensweisen (String Abfragen im Cursor, usw.)?

Z.b: CURSOR XYZ (pkz IN varchar) IS

select PKZ from PKW where (left,3)pkz = XYZ and ...;

Gruß,

Marko.

...Kann ich IF Abfragen auf Cursor laufen lassen, muss ich Cursor in Variablen "umdefinieren" ...

Ist das eine Frage oder eine Festellung?

Was willst du machen in welchem System, welche Umgebung, welche Version.... ????

Ich kann mir das bildlich nicht richtig vorstellen, wie eine IF-Abfrage auf einem Cursor läuft...???

  • Autor

Hat sich erledigt.


set serveroutput on


DECLARE


cursor	pkz_cursor is

select pkz from auto where substr(pkz,1,3) = 'LOS';


wort		varchar2(30);


BEGIN


OPEN pkz_cursor;


LOOP

	FETCH pkz_cursor INTO wort;

	EXIT WHEN pkz_cursor%NOTFOUND;

	dbms_output.put_line(wort);

END LOOP;


CLOSE pkz_cursor;


END;


/

Ich muss jetzt nur noch auf den Wörtern prüfen, ob sie kennzeichenkonform sind. Ne andere Möglichkeit, als über IF Abfragen fällt mir nicht ein.

Gruß,

Moeki.

  • Autor


set serveroutput on


DECLARE


cursor  pkz_cursor is

select pkz from auto where substr(pkz,1,3) = 'LOS';


wort            varchar2(30);

akt_zustand     varchar2(10):= 'korrekt';

n               number;


BEGIN


OPEN pkz_cursor;

<<auessere_Schleife>>

LOOP

        FETCH pkz_cursor INTO wort;

        EXIT auessere_Schleife WHEN pkz_cursor%NOTFOUND;

        dbms_output.put_line(wort);


        IF (ascii(substr(wort, 4, 1)) = 32) THEN

                akt_zustand := 'korrekt';

        ELSE

                akt_zustand := 'falsch';

        END IF;


        FOR n IN REVERSE 6..length(wort) LOOP

        EXIT WHEN akt_zustand = 'falsch';

        IF (((ascii(substr(wort, n , 1)) >=65) AND (ascii(substr(wort, n , 1)) <=90)) AND ((ascii(substr(wort, n-1 , 1)) >=48) AND (ascii(substr(wort, n-1 ,

1)) <=57))) THEN

                akt_zustand := 'falsch';

        END IF;

        END LOOP;


        IF (akt_zustand = 'korrekt') THEN

                dbms_output.put_line('Kennzeichen ist korrekt!');

        ELSE

                dbms_output.put_line('Kennzeichen ist falsch!');

        END IF;

END LOOP auessere_schleife;


CLOSE pkz_cursor;


END;


/

:)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.