2016-08-02 163 views
0

我必須根據特定條件鎖定數據庫中的用戶。我已將這些記錄拉入臨時表並在遊標中使用它來鎖定oracle中的用戶帳戶。 我得到了錯誤的ORA 0092鎖定用戶時丟失或無效的選項

0092缺失或無效選項

有人可以幫我解決這個問題。

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

回答

0

「In」缺失。嘗試下面。

FOR CUR_USERS IN (SELECT USERNAME FROM TMP_USUS) 

LOOP 

BEGIN 

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

END; 

END LOOP; 
0

變量不會在字符串常量內被替換。所以你試圖一次又一次地鎖定賬戶名稱CUR_USERS.USERNAME。您需要將值連接到字符串中。

您還缺少in遊標定義和附加BEGIN是不必要的和ENDEND LOOP是錯誤的順序爲。

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

嗨,感謝您的意見。我現在在工作 – Suresh

相關問題