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

Administration-Migration Discussion :

ORA-00911: Caractère non valide en XI


Sujet :

Administration-Migration

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut ORA-00911: Caractère non valide en XI
    Bonjour

    Je dois migrer un état en DESKI V5 à DESKI XI. Il contient le SQL suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM TABLE1
    WHERE  (TABLE1.DATEFIN={ts '2099-12-31 00:00:00'})

    En V5 cet état s'actualise correctement mais en XI le message suivant s'affiche :

    ORA-00911: Caractère non valide

    Avez-vous une idée pour résoudre cette erreur en XI ?

    Merci beaucoup beaucoup (j'ai ce cas sur plusieurs états )

  2. #2
    Membre averti

    Inscrit en
    Juillet 2007
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 391
    Points : 443
    Points
    443
    Par défaut
    plusieurs questions me viennent à l'esprit :

    1 - le code sql après migration est-il le même qu'avant migration ? sinon peux-tu afficher les 2 codes ? A moins qu'il ne s'agisse de sql à la carte ?

    2 - n'aurais-tu pas, en même qu'une migration v5 -> XI, fait une migration de base de données, genre Access -> Oracle ?

    3 - quand je vois ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {ts '2099-12-31 00:00:00'}
    je me demande : est-ce du code généré automatiquement ? est-ce la réponse à une invite ? est-ce codé en dure dans l'univers ?

    Grosso modo, tu ne donnes pas assez d'éléments (à mon goût) pour que l'on puisse te faire une réponse ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Effectivement je manque de détail

    1 - Il s'agit effectivement de SQL à la carte (donc le code est le meme en V5 et XI)

    2 - La base de données est la meme (Oracle), je ne l'ai donc pas migré.

    3 - Je n'ai pas plus de détail sur le code malheuresement... à part que ce n'est pas la répnse à une invite et ce n'est pas du code généré automatiquement

    Y aurait-il une requete que l'on puisse faire pour arriver au meme résultat ?? (par exemple : SELECT * FROM TABLE1 WHERE
    (TABLE1.DATEFIN<='2099-12-31 00:00:00')

    mais ce code genere un autre message : ORA-01861: le littéral ne concorde pas avec le format chaîne de caractères

    merci

  4. #4
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Salut,

    Regarde quel est le format de DATEFIN dans ta BDD et appliques le même format dans ta requête...
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  5. #5
    Membre averti

    Inscrit en
    Juillet 2007
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 391
    Points : 443
    Points
    443
    Par défaut
    C'est assez étrange car, normalement, BO ne touche pas au SQL à la carte et l'envoie tel quel à la base. Donc, si la base n'a pas changé ...

    as-tu essayé avec des fonctions de conversion ?
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM TABLE1 WHERE 
    (to_date(TABLE1.DATEFIN,"dd/MM/yyyy")<='31/12/2009'

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Le format de DATEFIN est au format "Date" donc en utilisant la fonction de conversion to_date j'obtient un nouveau message :

    ORA-01830: données surnuméraires après la conversion correcte d'une chaîne en entrée


  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Essaies avec cette formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM TABLE1 WHERE 
    (to_date(to_char(TABLE1.DATEFIN,"dd/mm/yyyy"),"dd/mm/yyyy")<='31/12/2099'
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    merci pour l'idée

    mais j'ai encore un nouveau message :
    ORA-00904: "dd/mm/yyyy" : identificateur non valide :s

  9. #9
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Mea culpa, le format doit être entre quote :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM TABLE1 WHERE 
    (to_date(to_char(TABLE1.DATEFIN,'dd/mm/yyyy'),'dd/mm/yyyy')<='31/12/2099'
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Cela fonctionne bien maintenant
    il fallait juste remplacer les " par '

    voici le bon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM 
    ANIS.PARINT PARINT_1
    WHERE (to_date(to_char(PARINT_1.DATEFIN_EFFE,'dd/mm/yyyy'),'dd/mm/yyyy')<='31/12/2099')

    Merci beaucoup TomDuBouchon et bch97 !!!!!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    a ! on a envoyé notre message en meme temps et on a vu le meme pb

    merci bien

Discussions similaires

  1. tOracleRow, ORA-00911: caractère non valide
    Par briochette38 dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 13/06/2011, 15h33
  2. Réponses: 2
    Dernier message: 15/04/2009, 07h42
  3. [10g Express] ORA-00911: caractère non valide
    Par maynoush dans le forum SQL
    Réponses: 4
    Dernier message: 23/11/2008, 16h04
  4. ORA-00911: caractère non valide
    Par Yayam dans le forum SQL
    Réponses: 5
    Dernier message: 14/11/2008, 15h42
  5. Réponses: 8
    Dernier message: 11/11/2008, 17h33

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