Blz ? Então, PRIMEIRA COISA, PLEASE nos diga Exatamente em qual tool vc está desenvolvendo : isso de “Formulário Cadastro de Afastamento” faz a gente pensar em Oracle Forms ou em APEX, mas por favor, DETALHES aqui….
O Segundo ponto é derivado do primeiro : normalmente, em PL/SQL “puro” vc só pode usar o comando RETURN numa FUNÇÃO, e não num bloco PL/SQL anônimo como parece ser o seu caso : o Contexto em que esse PL/SQL vai ser executado é Fundamental…
Isso posto, de resto tirando a questão do RETURN, a sintaxe do PL/SQL em si parece estar ok : vc tem uma variável numérica que está sendo populada com o resultado de um SELECT : se o SELECT ** realmente ** nunca retornar mais de uma linha E SE o datatype das colunas REALMENTE é DATE (o que habilita a aritmética de datas que vc usa) não vejo nenhuma fonte de dúvida, em termos de sintaxe está ok – como não conhecemos a sua modelagem nem a organização dos dados não sabemos se LOGICAMENTE esse trecho PL/SQL está fazendo o que precisa, mas em Sintaxe está OK, acredito….
Abraços,
José Laurindo Chiappa