В PL/SQL вы можете сделать это:
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;
Это тогда будет использоваться в вызове PL/SQL как это:
if user_exists('john') then
dbms_output.put_Line('John exists');
end if;
ПРИМЕЧАНИЕ: Я использовал COUNT (*) в запросе, зная, что это будет возвращать только 1 или 0 в случае первичного ключа поиска. Если не может быть больше чем одна строка, то я хотел бы добавить «и ROWNUM = 1» в запросе, чтобы предотвратить излишне подсчета много записей только, чтобы узнать, если таковая существует:
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;
Желаемая выход STRING «ДА» или «НЕТ» И user_id является Numberic – Matt
Если вы хотите, чтобы вернуть строку, а затем изменить свой вопрос в соответствии к тому, что. Строка с надписью «YES» или «NO» не совпадает с возвращаемым значением true или false, что будет логическим. – Pere