2016-08-02 9 views
0

Ich muss die Benutzer in der Datenbank basierend auf bestimmten Kriterien sperren. Ich habe diese Datensätze in eine temporäre Tabelle gezogen und in einem Cursor verwendet, um die Benutzerkonten in Oracle zu sperren. Ich habe den Fehler alsORA 0092 fehlende oder ungültige Option beim Sperren der Benutzer

0092 fehlende oder ungültige Option

Kann jemand bitte helfen Sie mir, dieses Problem zu lösen.

FOR CUR_USERS (SELECT USERNAME FROM TMP_USUS) 
LOOP 
BEGIN 
    EXECUTE IMMEDIATE 'ALTER USER CUR_USERS.USERNAME ACCOUNT LOCK'; 
END LOOP; 
END; 

Antwort

0

"In" fehlt. Versuchen Sie es unten.

FOR CUR_USERS IN (SELECT USERNAME FROM TMP_USUS) 

LOOP 

BEGIN 

    EXECUTE IMMEDIATE 'ALTER USER CUR_USERS.USERNAME ACCOUNT LOCK'; 

END; 

END LOOP; 
0

Variablen werden nicht innerhalb einer Stringkonstanten ersetzt. Sie versuchen also, den Kontonamen CUR_USERS.USERNAME immer wieder zu sperren. Sie müssen den Wert in die Zeichenfolge verketten.

Sie fehlen auch die in für die Cursordefinition und zusätzliche BEGIN ist unnötig und die END und END LOOP sind in der falschen Reihenfolge dafür.

FOR CUR_USERS IN (SELECT USERNAME FROM TMP_USUS) LOOP 
    EXECUTE IMMEDIATE 'ALTER USER '||CUR_USERS.USERNAME||' ACCOUNT LOCK'; 
END LOOP; 
+0

Hallo, Vielen Dank für Ihre Kommentare. Ich arbeite jetzt – Suresh

Verwandte Themen