を発射しますと、画面上のいくつかの余分な例外とメッセージを取得する。これは私のコードです:私は私のオラクルのアプリ画面に取得していますは私のトリガーは
CREATE OR REPLACE TRIGGER unsuccessful_logins
AFTER INSERT OR UPDATE
ON temp_logins
for each row
DECLARE
CURSOR c_unsuccessful_attempts
IS
SELECT * from temp_attempts
and user_id= :new.user_id;
max_fails EXCEPTION;
BEGIN
FOR r_unsuccessful_attempts in c_unsuccessful_attempts
LOOP
if(:new.user_id = r_unsuccessful_attempts.user_id) then
if (r_unsuccessful_attempts.locked = 'Y') then
raise max_fails;
end if;
else
null;
end if;
END LOOP;
EXCEPTION
WHEN max_fails THEN
RAISE_APPLICATION_ERROR (-20300,'User '''||:new.login_name||''' has reached maximum failed logins. Please contact your system administrator ');
END unsuccessful_logins;
エラーは次のとおりです。
APP-01564: ORACLE error 20300 in fdssgn
cause: fdssgn failed due to ORA-20300: You have reached maximum failed logins. Please contact your system administrator.
ORA-06512: at "APPS.UNSUCCESSFUL_LOGINS",line 24
ORA-04088: error during excution of trigger 'APPS.UNSUCCESSFUL_LOGINS'.
SQL文エラー時に実行されることであった: INSERT INTO TEMP_LOGINS(USER_ID、ATTEMPT_TIME、TERMINAL_ID、LOGIN_NAME) 値(:USER_ID、SYSDATE、:erminal_id、:のlogin_name)
ORA-20300: You have reached maximum failed logins. Please contact your system administrator
部分を表示したいだけです。
と省略します:
ORA-06512: at "APPS.UNSUCCESSFUL_LOGINS",line 24
ORA-04088: error during excution of trigger 'APPS.UNSUCCESSFUL_LOGINS'.
The SQL statement being executed at the time of the error was:
INSERT INTO TEMP_LOGINS (USER_ID, ATTEMPT_TIME,TERMINAL_ID,LOGIN_NAME)
values(:user_id, sysdate,:erminal_id,:login_name)
どのように私は、画面上でこれらの余分なメッセージをオフに取り除くことができますか?
あなたが見るメッセージやエラーは何ですか?テーブル定義は何ですか? (そして、なぜあなたは、すべてのカーソルを使用している、ともそれにパラメータとしてユーザーIDを渡していない?) –
あなたは余分な何の例外とメッセージを取得していますか?また、なぜあなたが直接関心のあるロックされたレコードを問い合わせることができるときに、temp_attemptsテーブルからすべてのレコードを取り出してループしているのですか? –
私が投稿する前に私が考えていたものを正確に言うためのAlexへ+1。 –