Получить ошибку если запись не найден

Надо написать такую логику если V_CLIENT равен нулю то тогда надо сделать EXCEPTION NO_DATA_FOUND, но тут у меня как то не получаеться.

PROCEDURE PUT(CODE  IN VARCHAR2,
              O_NOT_FOUND  OUT INTEGER) IS
                    
       V_CLIENT INTEGER;
      BEGIN
        O_NOT_FOUND := 0;
        
        SELECT COUNT(*)
        INTO V_CLIENT
        FROM RK.CODES C
        WHERE C.VALUE = CODE
              AND C.TYPE = 'CLIENT_CODE';
         
         EXCEPTION
           WHEN NO_DATA_FOUND THEN
             O_NOT_FOUND := 1;
    END;

Ответы (2 шт):

Автор решения: Akina

Как-то так:

PROCEDURE PUT( code IN VARCHAR2,
               o_not_found OUT INTEGER) IS
DECLARE
   no_data_found EXCEPTION;
BEGIN
   o_not_found := 0;
   IF NOT EXISTS ( SELECT NULL
                   FROM RK.CODES 
                   WHERE value = code AND type = 'CLIENT_CODE'
                   ) THEN
      RAISE no_data_found;
   END IF;

   EXCEPTION
      WHEN no_data_found THEN
         o_not_found := 1;
END;
→ Ссылка
Автор решения: s.vasilev
PROCEDURE PUT(CODE  IN VARCHAR2,
          O_NOT_FOUND  OUT INTEGER) IS
                
  BEGIN
    
    SELECT 0
    INTO O_NOT_FOUND 
    FROM RK.CODES C
    WHERE C.VALUE = CODE
          AND C.TYPE = 'CLIENT_CODE';
     
     EXCEPTION
       WHEN NO_DATA_FOUND THEN
         O_NOT_FOUND := 1;
END;
→ Ссылка