2016-08-02 10 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

"あり"がありません。以下を試してください。

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を何度もロックしようとしています。値を文字列に連結する必要があります。

また、カーソルの定義および追加BEGINためinが欠落している不要であり、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

関連する問題