PL/SQL bunu yapabilirsiniz:
function user_exists (p_user_id users.user_id%type) return boolean
is
l_count integer;
begin
select count(*)
into l_count
from users
where user_id = p_user_id;
return (l_count > 0);
end;
Sonra bu PL/SQL çağırarak kullanılacak olurdu bir 1 veya 0 veya bazı tür dönmek ve ona göre hareket etmek gerekir
if user_exists('john') then
dbms_output.put_Line('John exists');
end if;
NOT: Bu gibi bu sadece bir birincil anahtar arama durumunda 1 veya 0 dönecektir bilerek sorguda sayımı (*) kullanılır. Birden fazla satır olabilir Eğer herhangi varsa o zaman sadece öğrenmek için gereksiz yere çok sayıda kayıt sayma önlemek için sorguya "ve rownum = 1" eklersiniz:
function user_has_messages (p_user_id users.user_id%type) return boolean
is
l_count integer;
begin
select count(*)
into l_count
from messages
where user_id = p_user_id
AND ROWNUM = 1;
return (l_count > 0);
end;
sonra, bir dize döndürür göre sorunuzu düzenlemek istiyorsanız İstenilen çıkış STRING "EVET" veya "HAYIR" Ve user_id – Matt
numberic olduğunu Buna. "EVET" veya "HAYIR" yazan bir dize, bir boole olan bir doğru veya yanlış döndürmeyle aynı değildir. – Pere