Hej, sitter med en liten klurighet... Tacksam för ditt svar men var nog inte riktigt tydlig i min fråga. Hej Mattias Tack så mycket för hjälpen... Det verkar ha löst sig, men här kommer en variant som kanske passar:Returnera sequence.nextval i oracle
Skulle vilja returnera sequence.nextval värdet från mina inlägg i en oracledatabas till mitt program.
Som jag förstått det så ska detta vara möjligt, men har inte lyckats luska ut hur.
Tacksam för svar.
MattiasSv: Returnera sequence.nextval i oracle
Jag vill i min INSERT sats även returnera värdet på nextval, ngt i stil med
INSERT into...... SELECT nextval eller hur det nu kan tänkas att se ut...Sv: Returnera sequence.nextval i oracle
Det är inte så lätt att returnera .NEXTVAL flera gånger eftersom
funktionen uppdaterar sekvensen vid varje anrop. I ditt fall kan
man använda .CURRVAL som returnerar det aktuella sekvensvärdet.
Alltså först .NEXTVAL och sedan .CURRVAL så många gånger du vill.
Ett Exempel:
DECLARE
N1 NUMBER(1);
N2 NUMBER(2);
BEGIN
SELECT S_VPD1.CURRVAL INTO N1 FROM DUAL;
SELECT S_VPD1.NEXTVAL INTO N2 FROM DUAL;
DBMS_OUTPUT.PUT_LINE('CURRVAL: ' || N1);
DBMS_OUTPUT.PUT_LINE('NEXTVAL: ' || N2);
SELECT S_VPD1.CURRVAL INTO N1 FROM DUAL;
DBMS_OUTPUT.PUT_LINE('CURRVAL: ' || N1);
END;
Bästa Hälsningar
Folke LarssonSv: Returnera sequence.nextval i oracle
Har fått hyffsad koll på det hela nu, i alla fall tillräckligt mmycket för att få koden korrekt....Sv: Returnera sequence.nextval i oracle
Detta förutsätter att din insert/update kod körs i Oracle och inte via tex ADO.
declare
seq integer;
begin
insert into um_test (id, f1)
values (5, sequence.nextval) returning f1 into seq;
dbms_output.put_line('f1 = ' || seq);
update um_test set f2 = sequence.nextval
where id = 5
returning f2 into seq;
dbms_output.put_line('f2 = ' || seq);
end;
/Uffe