Tidinas 0 Denunciar post Postado Agosto 22, 2010 Olá pessoal! Tenho uma dúvida que talvez seja simples para vocês, mas para mim, que estou iniciando em PL/SQL é um problema! rss Seguinte: Preciso fazer um programa que receba 2 valores do usuário através de variáveis de substituição, uma para o salário e outra para o bonus. O programa deve apenas somar estes dois valores e apresentar o resultado. Até aqui sem problema. No entanto, deve haver tratamento de nulos para os valores, de forma que, se o usuário digitar um valor nulo o programa substitua esse valor por um valor default não nulo, ou que pelo menos o programa exiba uma mensagem de erro pedindo para o usuário digitar um valor válido. Estou tentando fazer o seguinte, mas dá erro: SET SERVEROUTPUT ON ACCEPT sa PROMPT 'Digite o salario anual: ' ACCEPT bo PROMPT 'Digite o bonus a ser concedido: ' DECLARE sal NUMBER (7,2):= &sa; bon NUMBER (6,2):=&bo; salfinal NUMBER (8,2); BEGIN IF sal IS NULL THEN sal := 1000; END IF; IF bon IS NULL THEN bon := 100; END IF; salfinal := sal+bon; DBMS_OUTPUT.PUT_LINE('Com bonus deu: ' || salfinal); END; / Desde já, grato!!! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 22, 2010 Use a função Nvl. Veja também : http://www.oradev.com/nvl.jsp Compartilhar este post Link para o post Compartilhar em outros sites
Tidinas 0 Denunciar post Postado Agosto 23, 2010 Use a função Nvl. Veja também : http://www.oradev.com/nvl.jsp Consegui Motta! Fiz assim: DECLARE sal NUMBER (7,2) := NVL(to_number('&sa'),1000); bon NUMBER (6,2) := NVL(to_number('&bo'),100); salfinal NUMBER (8,2); BEGIN salfinal := sal+bon; DBMS_OUTPUT.PUT_LINE('Com bonus deu: ' || salfinal); END; / Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites