Reasons
Problems of SQL
- There is just no real standard. Every product has a little bit
different syntax rules, even for quite simple things. This is not
obvious for beginners, but leads to vendor lock-in later in the
development cycle.
- Hard to know if a syntax is supported by a popular database or not.
- Keywords / reserved words are vendor dependent.
- Data types are not portable among database products.
- Vendor specific size restrictions in data types.
- No standard for autoincrement columns / sequences.
- Different products have different namespace mechanisms (schemas,
catalogs, databases).
For a list of incompatibilities, see also:
Comparison of different SQL implementations from Troels Arvin.
Problems of JDBC
JDBC is a superset of all functionality available in the main
databases. It is not clear what subset is actually implemented in
what database (and if yes, are there any limitations).