Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2007, 18h40   #1
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
Par défaut Problème de requète

Bonjour à tous,

Je tente d'effectuer la requete suivante:

private static final String SQL_GET_OBJETS_EN_COURS = "SELECT " + SQL_OBJET_ID + " FROM " + SQL_TABLE_OBJETS + " WHERE " + SQL_OBJET_ID + "=1;"

En utilisant spring/jdbc:
Code :
1
2
3
4
5
6
7
8
9
10
 
public List getEvenementEnCours() throws CommonException {
		jdbcTemplate = new JdbcTemplate(getDataSource());
		try {
			RETURN jdbcTemplate.query(SQL_GET_OBJETS_EN_COURS, new AllEvenementsMapper());
		} catch (DataAccessException e) {
			log.error(e);
			throw new DaoException(e);
		}
	}

Lorsque j'appelle cette méthode, j'obtient ceci:

Code :
1
2
3
4
5
6
7
8
9
10
 
Caused BY: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT OBJET_ID FROM  BE_SV_OBJET WHERE OBJET_ID=1;]; nested exception IS com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: ;;JET WHERE OBJET_ID=1;END-OF-STATEMENT
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:88)
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:257)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:294)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:348)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:352)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:356)
	at com.ag2r.editique.dao.impl.EvenementDAOimpl.getEvenementEnCours(EvenementDAOimpl.java:50)
	... 135 more
Quelle a été mon erreur?
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 10h26   #2
Membre régulier
 
Inscription : avril 2006
Messages : 118
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 118
Points : 72
Points : 72
Le sqlState 42601 donne comme erreur:
Code :
A character, token, or clause is invalid or missing.
Ta requête s'éxécute quand tu la lances directement?
Ton objet_id est bien un entier ?
_Jnie_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 10h35   #3
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
Il s'agit bien d'un integer. Peut être le fait que ce soit une foreign key change qualque chose?

LE truc étrange, c'est que lorsque je tente d'executer un SELECT * FROM BE_SV_OBJET, tout ce passe bien.
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 10h42   #4
Membre régulier
 
Inscription : avril 2006
Messages : 118
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 118
Points : 72
Points : 72
Je maitrise pas le langage mais le ; est nécessaire à la fin de ta requête?
As tu éxècuté ta requête directement sur la bécane?
_Jnie_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 10h59   #5
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
le ; est normalement nécessaire, de toute façon, avec ou sans, j'ai la même erreur.

Quand j'execute ma requete sur le serveur, ça deconne aussi :\
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 11h02   #6
Membre régulier
 
Inscription : avril 2006
Messages : 118
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 118
Points : 72
Points : 72
Citation:
Envoyé par ::Fistons
Quand j'execute ma requete sur le serveur, ça deconne aussi :\
Il dit quoi?
Tu peux faire voir la structure de tes tables et un extrait de ce qu'elles contiennent?
_Jnie_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 11h17   #7
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
J'ai la meme erreur:

SQLCODE: -104, SQLSTATE: 42601

la table:
objet_id:integer;
objet_isn:integer;
statut_id:integer(fk);
doc_id:char(16)(fk);
depot_isn:integer(fk);
objet_ind:char(1);
objet_idx:integer;
fichier_id:char(128);
objet_date:date;
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 11h32   #8
Membre régulier
 
Inscription : avril 2006
Messages : 118
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 118
Points : 72
Points : 72
t'es sur quel OS?
_Jnie_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 11h34   #9
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
Mon poste de dev est sous XP mais le serveur DB2 est sous un AIX 5.3
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 11h42   #10
Invité régulier
 
Inscription : mars 2006
Messages : 81
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 81
Points : 5
Points : 5
Bon, j'ai vu ça avec le DBA, on va patcher DB2, on verra ensuite...
::Fistons est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2008, 01h36   #11
Invité régulier
 
Inscription : mars 2005
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2005
Messages : 6
Points : 7
Points : 7
Envoyer un message via MSN à blacktitanium42
Par défaut Essayes ça

Salut !

Vu la date de ton poste ,j'espère que t as trouvé la reponse à ton probleme.


private static final String SQL_GET_OBJETS_EN_COURS = "SELECT " + SQL_OBJET_ID + " FROM " + SQL_TABLE_OBJETS + " WHERE " + SQL_OBJET_ID + "=1;"


En faite ta variable SQL_GET_OBJETS_EN_COURS étant final , le compilateur n'arrive pas à remplcer ces variables SQL_OBJET_ID ou SQL_TABLE_OBJETS par leur valeur correspondante.

Créer plutot une methode du genre

String getSqlObject(){

return SQL_GET_OBJETS_EN_COURS = "SELECT " + SQL_OBJET_ID + " FROM " + SQL_TABLE_OBJETS + " WHERE " + SQL_OBJET_ID + "=1;"

}

J'espère que ça t'aideras.
blacktitanium42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h03.


 
 
 
 
Partenaires

Hébergement Web