Value numeric exception nie moge zlapac Pl Sql

0

Witam serdecznie.
Napisałem prostą procedurę w pl sql do dodawania książki no i chce obsłużyć wszystkie możliwe wyjątki i mam problem z obsługą value or numeric error dałem w exceptionach i value error i invalid error i na koniec jeszcze others i nic nie wyłapuje dalej błąd

ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 2

Zamiast integer idGat wpisuje varchara Mój kod :

create or replace procedure DodajKsiazke(Tyt in VARCHAR2, Aut in VARCHAR2, idGat in INTEGER,idWyd in INTEGER,cen in number,dataZak in date,Sta in varchar2)
is
MaxId integer;
begin
select MAX(Id_ksiazki) into MaxId from Ksiazka;
MaxId := MaxId+1;
  INSERT INTO Ksiazka (Id_ksiazki,Id_gatunku,Id_wydawnictwa,Cena,Data_zakupu,Stan,Tytul,Autor)VALUES (MaxId, idGat,idWyd,cen,dataZak,Sta,Tyt,Aut);
  EXCEPTION
	when value_error
    then
      dbms_output.put_line ('Value Error');
     when invalid_number
     then
      dbms_output.put_line ('Invalid Number');
	  when others 
	   then
      dbms_output.put_line ('inny');
end  DodajKsiazke;
 
0

Piszesz:

Zamiast integer idGat wpisuje varchara

Więc pewnie błąd jest na etapie wywołania procedury a nie w jej wnętrzu.

Podaj wywołanie to zobaczymy jakiego varchar-a chcesz wepchnąć jako integer...

0
begin 
DodajKsiazke('Tytul test','Autor test','sfsfa',3,143.22,TO_DATE('2012/02/01', 'yyyy/mm/dd '),'Dostepna');
end;
1

Sam wiesz co zrobiłeś źle, do jakiej liczby całkowitej oracle miałoby przekonwertować twoje*'sfsfa' *?
Błąd występuje w wywołaniu. EXCEPTION nie łapał ci tego, bo on łapie błędy wewnątrz procedury.

Spróbuj zamiast 'sfsfa' wcisnąć jakąś liczbę i powinno przejść, tylko pewnie to jest FK i musi istnieć odpowiednie idGat

0

Aaa rozumiem dzieki zle rozumialem dzialanie nie wiem czemu uwalilo mi sie ze wyjatek jest generowany dopiero przy insercie danych do bazy :-D. A to przeciez jak w javie najpierw analiza typow parametrow potem wejscie do srodka.:-P. Dzieki wielkie za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1