CREATE or REPLACE PROCEDURE NextIDByYear ( p_AD_Sequence_ID IN NUMBER, p_IncrementNo IN NUMBER, p_CalendarYear IN CHAR, o_NextID OUT NUMBER ) AS BEGIN SELECT CurrentNext INTO o_NextID FROM AD_Sequence_No WHERE AD_Sequence_ID=p_AD_Sequence_ID AND CalendarYear = p_CalendarYear FOR UPDATE OF CurrentNext; -- UPDATE AD_Sequence_No SET CurrentNext = CurrentNext + p_IncrementNo WHERE AD_Sequence_ID=p_AD_Sequence_ID AND CalendarYear = p_CalendarYear; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END NextIDByYear;