moin
hab nach jahren der nichtbenutzung nun wieder mit oracle angefangen ...
aber irgendwie versteh ich da n bissi was nicht ...
also hab folgendes gemacht:
eine tabelle erstellt name: Test
mit 2 spalten : ID und Name
ID ist als primary Key und NOT NULL deklariert
Name ist ein Varchar2 mit ner länge von 255 zeichen
nun wollt ich nen insert machen und das feld name einfach mal füllen und das feld id sollte per autoincrement hochgezählt werden ...
und bei dem letzteren (autoincrement) hab ich nun mein problem ...
ich hab festgestellt das man ne sequenz und nen trigger schreiben muss um das zu realisieren ... das ist naja sagen wir mal umständlich aber ok ... ich hab also n bissi gegooglet und folgendes gefunden :
sequenz:
create sequence test_seq
start with 1
increment by 1
nomaxvalue;
trigger:
create trigger test_trigger
before insert on test
for each row
begin
select test_seq.nextval into :new.id from dual;
end;
/
^^ hier hatte ich mein erstes problem ... es kam immer die fehlermeldung:
Fehlender IN- oder OUT-Parameter auf Index:: 1
nachdem ich den : in zeile 5 des triggers weg genommen hatte ging das aber nun bekomm ich beim insert das wie folgt aussieht:
insert into test (id, NAME) values (test_seq.nextval, 'das ist ein test' );
immer die fehlermeldung:
ORA-04098: Trigger 'SYSTEM.TEST_TRIGGER' ist ungültig und konnte nicht neu bestätigt werden
so und nu bin ich etwas überfragt ...
kann mir wer helfen ???
thx LT
hab nach jahren der nichtbenutzung nun wieder mit oracle angefangen ...
aber irgendwie versteh ich da n bissi was nicht ...
also hab folgendes gemacht:
eine tabelle erstellt name: Test
mit 2 spalten : ID und Name
ID ist als primary Key und NOT NULL deklariert
Name ist ein Varchar2 mit ner länge von 255 zeichen
nun wollt ich nen insert machen und das feld name einfach mal füllen und das feld id sollte per autoincrement hochgezählt werden ...
und bei dem letzteren (autoincrement) hab ich nun mein problem ...
ich hab festgestellt das man ne sequenz und nen trigger schreiben muss um das zu realisieren ... das ist naja sagen wir mal umständlich aber ok ... ich hab also n bissi gegooglet und folgendes gefunden :
sequenz:
create sequence test_seq
start with 1
increment by 1
nomaxvalue;
trigger:
create trigger test_trigger
before insert on test
for each row
begin
select test_seq.nextval into :new.id from dual;
end;
/
^^ hier hatte ich mein erstes problem ... es kam immer die fehlermeldung:
Fehlender IN- oder OUT-Parameter auf Index:: 1
nachdem ich den : in zeile 5 des triggers weg genommen hatte ging das aber nun bekomm ich beim insert das wie folgt aussieht:
insert into test (id, NAME) values (test_seq.nextval, 'das ist ein test' );
immer die fehlermeldung:
ORA-04098: Trigger 'SYSTEM.TEST_TRIGGER' ist ungültig und konnte nicht neu bestätigt werden
so und nu bin ich etwas überfragt ...
kann mir wer helfen ???
thx LT
Comment