Executer une requets pour BD ORACLE et JDBC

Résolu/Fermé
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 - Modifié par djanahana le 27/03/2012 à 02:48
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 - 19 mai 2012 à 18:51
Bonjour,

j'aimerai bien que vous m'aide
j'ai un programme java et je veux execute la commande

EXECUTE DBMS_STATS.gather_table_stats('nom_utilsateur', 'nom-table'); 


pour collecter les statistique sur la table "nom_table"

ma question est comment je peux exécuter cette commande a travers une instruction dans mon programme java

j'ai trouver callstatement ,preparestatemet ais prepare statemet est présenter comme erreur dans eclipse ,vramient je ne sias pas :(

(sachant que j'ai deja executer des requêtes SQL simple dans mon programme java et ca marche tres bien )

2 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
27 mars 2012 à 21:38
Bonjour,
DBMS_STATS est "interne" si je peux dire à Oracle.
Mais il y a un moyen pour le contourner.
Créer une procédure stockée dans laquelle se trouvera la commande en question.
Appelez votre procédure depuis votre programme Java et le tour est joué ;-)
2
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 13
19 mai 2012 à 18:51
merci ,j'ai trouve la solution ,je veux utilise cette fonction qui inclus deja une execution de cette requet avec JDBC


public static void refresh(String nom_table) throws SQLException{
		
		CallableStatement stmt=null;
		CallableStatement stmt2=null;
			//String var_table="'"+nom_table+"'";
			
		String var_table="'"+nom_table+"'";
			//il y a avis un probleme de commit apres insertion 
			try{
			stmt= connection.prepareCall("begin  DBMS_STATS.gather_table_stats('system',"+var_table+");commit;end;");
			
		        stmt.execute();
		        
		        
		        stmt2= connection.prepareCall("begin commit; end;");
		        stmt2.execute();
		        System.out.println("commit");
			}
			 catch (SQLException e) {
				}
		}



merci
0