CREATE OR REPLACE PROCEDURE get_next_session_id (v_session_id OUT VARCHAR2) IS BEGIN SELECT 'S'||lpad(session_id.nextval,5,'0') INTO v_session_id FROM dual; EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error(-20000, 'No more rows.'); WHEN OTHERS THEN raise_application_error(-20001, 'There was an undeterminable error.'); END get_next_session_id;