Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tidinas

[Resolvido] Variáveis de substituição em PL/SQL

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.