mysequence.CURRVAL vrátí nejnovější hodnotu, která byla získána ze sekvence mysequence v vaší session, a proto není definován, dokud nezískáte hodnotu pomocí mysequence.NEXTVAL alespoň jednou v relaci. Účelem CURRVAL je umožnit vám použít hodnotu sekvence více než jednou ve vašem kódu, např.
insert into parent (parent_id, ...) values (mysequence.NEXTVAL, ...);
insert into child (parent_id, ...) values (mysequence.CURRVAL, ...);
Pokud CURRVAL právě vrátil poslední hodnotu získanou ze sekvence pomocí any session, pak by to bylo ve výše uvedeném kódu k ničemu a ve skutečnosti by mohlo vést k poškození dat!