2014-11-14 3 views
0

Я создал функцию, которая, на мой взгляд, правильная, но я не уверен, как ее вызвать в триггере. Я знаю, что триггер не так, но вот что я попробовал Функция:Использование функций в триггерах

create or replace function log_in(pass in varchar2, user in varchar2) 
return number 
is 
    match_count number; 
begin 
    select count(*) 
    into match_count 
    from Member 
    where username=user 
    and password=pass; 
    return match_count; 
end; 

Trigger:

create or replace TRIGGER PASSWORDCHECK 
BEFORE INSERT OR UPDATE ON Login 
FOR EACH ROW 
DECLARE 
usern VARCHAR2(12); 
pass VARCHAR2(12); 
result number; 
BEGIN 
usern := :new.username; 
pass := :new.password; 
/*Select LOG_IN(pass,usern)INTO result From MEMBER Where usern = Username;*/ 
result := LOG_IN(pass,usern); 
If result = 1 THEN 
dbms_output.put_line('Login Succesful'); 
ElsIF result = 0 THEN 
dbms_output.put_line('Login Failed'); 
END IF; 
END; 
+1

Что РСУБД это ? –

+0

Извините, что его sql oracle im использует, я думаю, что то, что вы ищете – user3433399

+0

Wny вы вызываете dbms_output в триггере? Нет ничего, чтобы видеть это нормально. – OldProgrammer

ответ

0

Я предполагаю, что все попытки входа в систему не получится?

USER это ключевое слово, которое идентифицирует текущую схему:

SQL> select user from dual; 

USER 
------------------------------ 
REF 

Как это вряд ли какой-либо из пользователей имеют такое же имя, как схема ваш счетчик всегда возвращается 0.

Смежные вопросы