사용자 지정 애플리케이션은 일반적으로 몇 가지 DBMS에 대해 특정 작업을 수행합니다. 예를 들어 애플리케이션은 단일 DBMS에서 데이터를 검색하고 보고서를 생성하거나 여러 DBMS 간에 데이터를 전송할 수 있습니다. 이러한 애플리케이션의 공통점은 애플리케이션이 작성되기 전에 이러한 DBMS를 알고 있으며 애플리케이션 수명 동안 변경될 가능성이 낮다는 것입니다.
따라서 사용자 지정 애플리케이션에는 상호 운용성이 거의 또는 전혀 필요하지 않습니다. 애플리케이션 개발자는 각 DBMS에 대해 단일 드라이버를 선택하고 해당 드라이버에 직접 코드를 선택할 수 있습니다. 애플리케이션은 드라이버 관련 코드를 안전하게 포함하여 해당 드라이버의 기능을 악용할 수 있으며 ODBC에서 지원하지 않는 기능을 사용하기 위해 네이티브 데이터베이스 API를 호출할 수도 있습니다.
대부분의 사용자 지정 애플리케이션의 주요 상호 운용성 문제는 향후 대상 DBMS가 변경될지 여부입니다. 그렇다면, 상호 운용 가능한 코드를 처음부터 작성하면 이 프로세스를 간소화할 수 있습니다. 그러나 이러한 DBMS 변경은 드물며 일반적으로 많은 양의 작업이 수반됩니다. 이 때문에 사용자 지정 애플리케이션의 개발자는 기능을 희생하여 상호 운용성을 높이기 위해 거의 선택하지 않습니다. 일반적으로 DBMS를 변경할 때 해당 기능을 다시 코딩하도록 선택합니다.