Executer une requets pour BD ORACLE et JDBC

Résolu/Fermé
Signaler
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
-
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
-
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

Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
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
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
13
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