CREATE OR REPLACE FUNCTION sitescope.get_id_servername ( v_value sitescopelog.servername%TYPE ) RETURN archive_servername.id%TYPE AS PRAGMA AUTONOMOUS_TRANSACTION; v_id archive_servername.id%TYPE; BEGIN SELECT id INTO v_id FROM archive_servername WHERE value = v_value; RETURN (v_id); EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO archive_servername ( value ) VALUES ( v_value ); COMMIT; SELECT id INTO v_id FROM archive_servername WHERE value = v_value; RETURN (v_id); END; /