Jump to content
amvm

verificando se é possível alugar o livro

Recommended Posts

amvm

boas...

tenho uma duvida num trigger q estou construindo...

quero verificar se, ao tentar alugar um livro este se encontra disponivel...

create or replace TRIGGER validarLivro 
Before Insert OR UPDATE on Aluguer_Livro
FOR EACH ROW  
declare   n_livro_alugados integer; 
Begin    
SELECT id_livro into  n_livro_alugados from aluguer_ livro where data_fim>sysdate;
if (:new.id_livro=n_livro_alugados) then     
Raise_Application_Error(-20000,'-->>> O automovel está sendo alugado neste momento <<<---' );  
  End If;  
End;

eu pensei o seguinte: como o aluguer tem uma data inicio e uma data fim... eu pensei em guardar numa variavel todos os id dos livros cuja data final ou seja data de entrega é superior á data actual, ou seja, nao vao estar disponiveis...

não da erro de compilação o trigger mas quando eu insiro valores para testar me dá esta erro: SQL Error: ORA-01422: exact fetch returns more than requested number of rows

como posso resolver este saco?

inté

Share this post


Link to post
Share on other sites
jsWizard

o teu SELECT está a devolver vários registos e por isso é que dá esse erro. estás a tentar colocar vários IDs numa variável.

Devias colocar na clausula WHERE do SELECT uma restrição pelo id do livro que estás a tentar alugar. Ainda assim, deves ter tratamento de erros, pois pode dar NO_DATA_FOUND se o livro nunca tiver sido alugado.

espero ter ajudado.

Inté!

Share this post


Link to post
Share on other sites
brunoais

Posso saber a solução?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.