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

PL/SQL Oracle Discussion :

EVALUATE et expressions invalides


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Par défaut EVALUATE et expressions invalides
    Bonjour a tous,

    je me retrouve confronte a un probleme et la solution ne me vient pas ...

    Le probleme :

    J'ai une portion de code qui utilise la fonction EVALUATE sur une colonne remplie d'expressions.
    Le ATTRIBUTE SET attaché a cette colonne est configuré de maniere identique a notre environment de production (je travail sur un env de test).
    Le probleme etant que la majorité de ces expressions est invalide a en croire les messages d'erreurs que je recois et le resultat d'un appel de DBMS_EXPFIL.validate_expressions sur la table/colonne en question.
    Ce ne serait pas si dramatique si les donnée dans mon environment de test n'etaient pas IDENTIQUE a celle que je trouve en production ...

    A noter que tout cela fonctionne sans soucis en production.

    J'ai verifie chaque expresssion et aucune ne refere un ELEMENTARY ATTRIBUTE que je n'ai pas defini dans mon ATTRIBUTE SET. Les expresssions ne contiennent aucune user-defined fonctions. Bref les expressions ont l'air OK.

    Ma question est la suivante : d'ou peut venir mon invalidation ? A defaut d'une reponse exacte je serais reconnaissant si vous pouviez me donner quelques pistes ... je suis a cours d'idées !

    Merci a ceux qui prendront le temps de m'aider.
    Joel.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Par défaut
    De retour,

    j'ai pu trouver une "solution" au probleme decrit plus haut. Plus qu'une solution c'est une moyen de contourner ce que je crois etre un bug dans Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    "CORE	10.2.0.5.0	Production"
    TNS for Linux: Version 10.2.0.5.0 - Production
    NLSRTL Version 10.2.0.5.0 - Production
    Apres avoir mene quelques experiences j'ai pu constater que Oracle n'apprecie pas certaines expressions.
    Imaginons deux elementary attributes Client_id et Client_name.
    L'expression suivante est invalide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client_id=1 AND regexp_like(client_name, 'my_reg_expression')
    Mais bizarrement les expressions suivantes sont valide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    client_id=1 AND regexp_like(client_name, 'my_reg_expression') AND regexp_like(client_name, 'my_reg_expression') ;/*Les deux regexp etant totalement identique ...*/ 
    client_id=1 AND regexp_like(client_name, 'my_reg_expression') AND 1=1;
    Plus generalement il semble que Oracle n'apprecie pas vraiment de mettre UNE ET UNE SEULE regexp_like fonction a la FIN de mon expression. En rajoutant d'autres predicats apres ma regexp_like l'expression est systematiquement validee (si l'attribut est correcte evidemment -client_id ou client_name dans l'exemple).

    La solution facile est donc de rajouter un 'AND 1=1' a la fin de toute expression invalide, c'est moche mais ca fonctionne.

    En esperant que ce post pourra aider quelqu'un, un jour peut etre ...

Discussions similaires

  1. Evaluer une expression
    Par pc75 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/03/2008, 10h22
  2. Evaluer une expression mathématique
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/07/2007, 18h28
  3. [VBA] Evaluation d'expression (PHP)
    Par Scritch852 dans le forum Général VBA
    Réponses: 13
    Dernier message: 22/03/2007, 17h35
  4. [XPATH] Evaluer une expression xpath dans un xml
    Par antigone dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 29/01/2007, 17h21
  5. [Source] Evaluer une expression algébrique
    Par Delbeke dans le forum Vos contributions VB6
    Réponses: 6
    Dernier message: 22/08/2006, 11h52

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