Я создал эту функцию, и она работает:
create or replace function log_in(
p_ssnr in customer.ssnr%type,
p_password in customer.password%type)
return number
as
v_number number(1);
begin
if
(p_ssnr is not null and p_password is not null) then
v_number:= 1;
else
v_number:= 0;
end if;
return v_number;
end;
Если я затем наберу: выберите log_in («номер социального страхования», «пароль») из двойного; тогда я получаю «1», так что это работает. Но вы можете в основном напечатать все, что захотите, и это сработает, так что это не чистый код. Поскольку вы не можете включить подзапрос в оператор if, как вы можете создать функцию, чтобы вы возвращали 1, только когда вы фактически вводите номер социального страхования (ssnr) и пароль, который соответствует таблице фактических клиентов? а в противном случае вы возвращаете 0?