Bonjour,

J'exécute une requête du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
"Select "
+ "	DATE "
+ "from table "
+ "where {ma_condition} "
Cette requête, exécuté dans SqlDevelopper et dans SqlPlus, renvoie la date en format français.

Si je l'exécute dans ma servlet, voire même dans un code de test, la date m'est renvoyée en américain.


Voici le code utilisé pour ouvrir ma connexion Oracle de type thin via jdbc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
private static String MaBase= "(DESCRIPTION="
			+ "(ADDRESS = (PROTOCOL = TCP)(HOST = serveur1 )(PORT = 1521)) "
			+ "(ADDRESS = (PROTOCOL = TCP)(HOST = serveur2 )(PORT = 1521)) "
			+ "(LOAD_BALANCE = yes)(FAILOVER = yes)(CONNECT_DATA =(SERVICE_NAME = MABASE)(FAILOVER_MODE =(TYPE = SELECT)"
			+ "(METHOD = BASIC)(RETRIES = 300)(DELAY = 2))))";
	private static String url = "jdbc:oracle:thin:@" + MaBase; // + ";InitializationString=ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY'";
	private static String util = "utilisateur";
	private static String mdp = "motdepasse";
 
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			try {
				DriverManager.registerDriver(new OracleDriver());
		        connexion = DriverManager.getConnection(url,util,mdp);
				//connexion = DriverManager.getConnection(url, util, mdp);
 
		        PreparedStatement ps = connexion.prepareStatement("alter session set NLS_DATE_FORMAT = 'DD/MM/YYYY'");
		        ps.execute();
		        ps.close();
Comme vous le voyez, j'ai essayé ci-dessus de forcer le format de la date, sans succès.

Je récupère le code comme étant une date :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public List<Objet> listeObjets() {
 
		List<Objet> objets = new ArrayList<Objet>();
		Connection conn = SingletonConnection.getConnexion();
		try {
			PreparedStatement ps = conn.prepareStatement
					("Select "
+ "	DATE "
+ "from table "
+ "where {ma_condition} ";
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Objet objet = new Objet();
				objet.setDate(rs.getDate("DATE"));
...
 
				objets.add(objet);
			}
			ps.close();
Enfin voici le code qui me permet de tester :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
public static void main(String[] args) {
		IObjetsMetier metier = new ImplObjetsMetier();
 
		List<Objet> objets = metier.listeObjets();
		for (Objet o : objets) {
			System.out.println(o.getDate());
		}
 
	}
Qu'est ce qui peut expliquer cette différence entre SqlDevelopper/SqlPlus et mon application JEE ?

Merci.