J'ai besoin de gérer les résultats renvoyant des procédures/fonctions stockées pour trois bases de données (Oracle, sybase, MS-Server). Les procédures/fonctions sont généralement les mêmes mais l'appel est un peu différent dans Oracle.Comment déterminer le type de base de données pour une connexion JDBC donnée?
statement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
...
statement.execute();
ResultSet rs = (ResultSet)statement.getObject(1);
JDBC ne fournit pas de manière générique pour gérer cela, donc je vais avoir besoin de distinguer les différents types de blocs de données dans mon code. On me donne la connexion mais je ne connais pas la meilleure façon de déterminer si la base de données est oracle. Je peux utiliser le nom du pilote mais préférerais trouver un moyen plus propre.
Microsoft SQL Server donne "Microsoft SQL Server" pour le nom du produit. – OldCurmudgeon
Oracle donne "Oracle" – OldCurmudgeon
PostgreSQL donne "PostgreSQL" –