PROCEDURE Sleep(n IN INTEGER)
IS
  v_errorcode NUMBER;
  v_errormesg VARCHAR2(200);
  end_dt DATE;
BEGIN
  end_dt := SYSDATE + n/(24*60*60);
  WHILE SYSDATE < end_dt LOOP 
    NULL ;
  END LOOP ;
  DBMS_OUTPUT.PUT_LINE('i waited '||TO_CHAR(N)||' seconds') ;
  RETURN;
EXCEPTION
  WHEN OTHERS THEN
    v_errorcode := SQLCODE;
    v_errorcodemesg := SQLERRM;
    DBMS_OUTPUT.PUT_LINE( 'SLEEP Error: '|| v_errorcode ||' '|| v_errormesg);
    RETURN ;
END SLEEP;