Moeki Geschrieben 3. November 2006 Teilen Geschrieben 3. November 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 6. November 2006 Teilen Geschrieben 6. November 2006 ...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...??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Moeki Geschrieben 7. November 2006 Autor Teilen Geschrieben 7. November 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Moeki Geschrieben 7. November 2006 Autor Teilen Geschrieben 7. November 2006 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; / Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.