Tenho um formulário para cadastrar um usuário em um determinado sistema (Ex: Financeiro, Serviços) com um determinado Papel (Ex. Gestor, Administrador) com duas Listas de seleção.
Na primeira eu seleciono o sistema.
Na segunda o Papel.
E cadastro no banco de dados. Até aí tudo bem.
O problema é, quando eu cadastro ele em um sistema, depois esse sistema não pode aparecer mais, pq o usuário já esta cadastrado nele.
Então se eu cadastrar ele em todos os sistemas, a consulta sql não retornará nenhuma linha, o que está corretamente certo.
Eu queria saber se existe alguma forma de tratar isso, por exemplo, quando a consulta não retornar linhas, ao invés de aparecer o formulário, aparecer uma mensagem
"A empresa não possuí mais sistemas para efetuar o cadastro".
Então eu preciso de uma forma para tratar a consulta quando não retornar nenhuma linha nas listas de seleção.
Obrigado Aí pessoal.
Aé lembrando que a linguagem é o Pl/sql
Se você tem uma tabela no banco que guarda o usuário e o sistema em que ele está cadastrado fica fácil. É só carregar a lista de seleção a partir de uma consulta que tenha uma WHERE USUARIO_CADASTRADO <> “NOVO USUARIO”
Então, bacaninha… em um bloco PL/SQL, quando você busca linhas num select e tenta pôr o resultado numa variável e esse select não retorna nada… você cai numa exception: mais exatamente o NO_DATA_FOUND.
Eis um exemplo típico do caso. Dá uma adaptada aí ao seu banco e pau neles!!
declare v_variavel varchar2(50);
begin
select descricao
into v_variavel
from tabela
where codigo = 50;
exception
when NO_DATA_FOUND then
dbms_output.put_line('nao retornou nada...');
end;
Apresento-te também um fórum específico de Oracle. Encontrarás muita coisa boa por lá também: http://glufke.net/oracle/