본관은 해주(海州). 자는 선여(善餘), 호는 수양일민(首陽逸民). 증영의정 오달제(吳達濟)의 후손으로 오언유(吳彦儒)의 손자이다.
1783년(정조 7) 진사시에 합격, 영희전참봉(永禧殿參奉)이 되었으며, 연일현감·해주판관 등을 거쳐 금산군수가 되었으나 불치죄(不治罪)로 1829년(순조 29) 아산(牙山)에 유배되었다가 그 이듬 해 석방되었다. 역사에 밝았으며, 고려·조선과 명나라와의 교섭사실 등을 기술한 『소화외사(小華外史)』를 저술하였다.