Value numeric exception nie moge zlapac Pl Sql

Odpowiedz Nowy wątek
2015-05-08 21:45
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;

Pozostało 580 znaków

2015-05-08 22:34
Świetny Lew
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...

Pozostało 580 znaków

2015-05-08 22:38
0
begin 
DodajKsiazke('Tytul test','Autor test','sfsfa',3,143.22,TO_DATE('2012/02/01', 'yyyy/mm/dd '),'Dostepna');
end;

Pozostało 580 znaków

2015-05-08 22:50
Świetny Lew

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

Pozostało 580 znaków

2015-05-08 23:00
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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