“ODBC-compliant database” and “JDBC-compliant database” are nonsequiturs. ODBC and JDBC clients can connect to databases that store behavior in the form of methods, triggers, constraints, and stored procedures. The ODBC and JDBC specifications mandate nothing about database behavior. Likewise, they don’t specify anything about database content, just as the VHS spec says nothing about movie content. That’s why I’ve often used the analogy “Saying a database is ODBC-compliant is like saying Titanic is a VHS-compliant movie.”
The terms “ODBC-compliant database” and “JDBC-compliant database” confuse database developers who interpret them to mean that ODBC and JDBC provide guarantees about a database. For example, the ODBC spec defines a timestamp data type. Novice developers assume that means all “ODBC-compliant databases” include a timestamp type. ODBC and JDBC do not mandate DBMS or database behavior, but they do provide introspection APIs. ODBC’s SQLGetInfo and SQLGetTypeInfo and JDBC’s DatabaseMetaData class enable you to find out what features are supported at the server end of a database connection.