Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trigger
Forum PHP.pl > Forum > Bazy danych > Oracle
cinnek
Witam

Tworze takiego triggera:

[sql:1:a4d5732cbe]
create or replace trigger trr_opiekunowie
before insert on opiekunowie
for each row
begin
if :new.o_id is null then
select licznik.nextval into :new.o_id from dual;
end if;
end;
/
[/sql:1:a4d5732cbe]

ten triger to cos wrodzaju autoimcrement w mySqlu
i niestety robiąc inserta ,takiego gdzie w miejscu o_id mam NULL dostaje błędy:

ORA-06502: PL/SQL: numeric or value error: number precision too large
ORA-06512: at "DIVINF_12_7.TRR_OPIEKUNOWIE", line 3
ORA-04088: error during execution of trigger 'DIVINF_12_7.TRR_OPIEKUNOWIE'


Czy może ktos wie dlaczego

aha licznik tworze tak:
[sql:1:a4d5732cbe]
create sequence licznik minvalue 0 maxvalue 9999 increment by 1 start with 5;[/sql:1:a4d5732cbe]
bartmag
Cytat(cinnek @ 2004-05-22 14:01:05)
...

ORA-06502: PL/SQL: numeric or value error: number precision
...

maxvalue 9999

Nie mam konsoli Oracla teraz pod ręką, ale popatrz na to i pokombinuj z tą wartością 9999.
modzel
a po co ten select questionmark.gif
nie lepiej
Kod
:new:=licznik.nextval;
Method
a wiesz ostnieje takie cos fajnego co sie sekwencje zwie
on ci zapewni autoincrement chodz tak z najnowszych trednow - gdzies wyczytalem nie chcacy to sie nie robi juz incrementacji na ID z poziomu bazy tylko sie daje timestampa z milisek. - podobno szybsze.
Ja jednak uzywam sequence
SongoQ
Cytat
to sie nie robi juz incrementacji na ID z poziomu bazy tylko sie daje timestampa z milisek

Hm tak sie zastanawiam, czy przypadkiem nie bedzie 2 takich samych, bazki rozproszone itd.

A odnosnie pytania troche dziwna sprawa, skladne masz ok.

Wydaje mi sie ze cos typ pola nie jest zgodny z sekwencja.
Sprawdz tak:
create sequence licznik minvalue 0 maxvalue 1.0E28 increment by 1 start with 5;
bo tak wstawia chyba domyslnie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.