IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

java.sql.SQLDataException: Caractère non numérique trouvé à la place d'un caractère numérique


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Alternante
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut java.sql.SQLDataException: Caractère non numérique trouvé à la place d'un caractère numérique
    Bonjour,

    Je veux utiliser un globalMap variable dans ma requête Oracle :
    "select tr.TESTOPNO,tr.REVDATE, tr.SEQNOBYTE, tr.SEQNUM,tr.COMPIDS, tr.SITEINDEX, tr.ENTTIME, tr.ITEMPROMPT,tr.DATATYPE, tr.TXTVAL, tr.NUMVAL,tr.DATEVAL,
    t.SOITECDATECREATION
    from pll.tres_rawdata tr, pll.tres t
    where
    t.testopno = tr.testopno
    AND t.revdate = tr.revdate
    AND t.seqnobyte = tr.seqnobyte
    AND t.soitecdatecreation < sysdate
    AND t.soitecdatecreation >='" + (java.util.Date)globalMap.get("start_requete") +"'"

    J'ai stocké mon variable "start_requete" dans tJavaRow : globalMap.put("start_requete",TalendDate.setDate(input_row.ENDREQUESTDATE, -365, "dd")); où j'ai défini input_row.ENDREQUESTDATE comme une date et le format est "dd-MM-yy HH:mm:ss"

    Quand j'exécute, j'ai eu ce problème de java.sql... qui m'a dit "Caractère non numérique trouvé à la place d'un caractère numérique", et je ne comprends pas pourquoi qu'il attend un caractère numérique. Je fais une comparaison de deux dates là.

    La seule problème je vois ici c'est que le format de date dans Oracle était comme "dd/MM/yyyy HH:mm:ss" mais j'ai bien défini dans tOracleInput le même format comme "dd-MM-yy HH:mm:ss".
    Du coup je ne vois pas qu'est-ce qui a causé cet erreur.
    Pouvez-vous m'aider ?
    Merci par avance pour votre retour.

    Cordialement,
    Sylvanas

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND t.soitecdatecreation >='" +  TalendDate.format(  "dd/MM/yyyy HH:mm:ss" , (java.util.Date)globalMap.get("start_requete") )+"'"

    Le format défini dans le Schema ne compte plus. Ton tOracle Input, n'a même conscience de ce qu'il y a dans la globalMap
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Alternante
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND t.soitecdatecreation >='" +  TalendDate.format(  "dd/MM/yyyy HH:mm:ss" , (java.util.Date)globalMap.get("start_requete") )+"'"

    Le format défini dans le Schema ne compte plus. Ton tOracle Input, n'a même conscience de ce qu'il y a dans la globalMap
    Bonjour,

    Merci pour votre réponse.
    J'ai un autre erreur en mettant ce format :
    Exception in component tOracleInput_2
    java.sql.SQLDataException: ORA-01830: Le modèle du format de date se termine avant la conversion de la chaîne d'entrée entière


    Voici ma requête dans tOracleInput_2 :
    "SELECT *
    from TRES
    where
    TRES.soitecdatecreation < sysdate and soitecdatecreation >='" + TalendDate.formatDate( "dd/MM/yyyy HH:mm:ss" , (java.util.Date)globalMap.get("start_requete") ) + "'
    order by soitecdatecreation desc"

    J'ai ainsi modifié tous les formats date comme celui dans Oracle, mais il me donne toujours cette erreur.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Alternante
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut ORA-00907: parenthèse de droite absente
    Bonjour,

    J'ai changé une autre façon de faire :

    "SELECT *
    from pll.TRES
    where
    TRES.soitecdatecreation < sysdate and soitecdatecreation >= to_date( ' '"+ (java.util.Date)globalMap.get("start_requete")+"' ','dd/MM/yyyy HH:mm:ss')
    order by soitecdatecreation desc;"
    Et je me suis tombée sur l'erreur : ORA-00907: parenthèse de droite absente
    Mais je vois pas ce qui me manque...
    Et en fait je ne sais toujours pas comment utiliser le globalMap variable in Talend ...

  5. #5
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Salut,

    Au lieu d'utiliser une variable de type date dans ton tMap, tu peux faire beaucoup plus simple en utilisant une variable de type string.

    Dans ton tJavaRow au lieu de faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    globalMap.put("start_requete",);
    Essai de faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    globalMap.put("start_requete",TalendDate.formatDate("dd/MM/yyyy HH:mm:ss", TalendDate.setDate(input_row.ENDREQUESTDATE, -365, "dd")))
    Comme ça tu obtiens directement une chaine de caractère qui représente la date de te requête. En suite dans ta requête Oracle, tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "SELECT *
    from pll.TRES 
    where
    TRES.soitecdatecreation < sysdate and soitecdatecreation >= to_date( '"+ (String)globalMap.get("start_requete") +"' ,'dd/MM/yyyy HH:mm:ss')
    order by soitecdatecreation desc;"
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. Réponses: 1
    Dernier message: 29/02/2012, 08h56
  3. Réponses: 2
    Dernier message: 16/05/2011, 18h43
  4. Réponses: 1
    Dernier message: 03/06/2008, 09h05
  5. [SQL-2005] Rechercher des caractères non numériques
    Par castaka dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2007, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo