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

SQL Oracle Discussion :

Erreur ORA-00600 sur requête via un logiciel [11gR2]


Sujet :

SQL Oracle

  1. #1
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut Erreur ORA-00600 sur requête via un logiciel
    Bonjour,

    Une requête fonctionne lorsque je l'exécute dans SQL Developer mais lorsqu'elle est soumise via un logiciel, celui-ci reçoit une erreur ORA-00600 d'Oracle.

    Voici la requête :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    SELECT
            UB,
            CR,
            SOUS_CR,
            TYPE_CREDIT,
            CODE_ANALYTIQUE,
            CODE_ANALYTIQUE_LIBELLE,
            PCO_NUM,
            PCO_LIBELLE,
            COMMANDE_NUMERO,
            ENGAGE_NUMERO,
            ENGAGE_DATE,
            ENGAGE_LIBELLE,
            FOURNISSEUR_CODE,
            FOURNISSEUR_NOM,
            MONTANT_ENGAGEMENT_GLOBAL,
            RESTE_ENGAGE_GLOBAL,
            RESTE_ENGAGE_ANALYTIQUE,
            RESTE_ENGAGE_IMPUTATION,
            0 MONTANT_LIQUIDE_ANALYTIQUE,
            0 MONTANT_LIQUIDE_IMPUTATION
    FROM jefy_depense.v_enfa_engage_analy_imput
    WHERE UPPER(UB || '/' || NVL(CR,'non defini') || '/' || NVL(SOUS_CR, 'non defini')) LIKE UPPER('900')||'/'|| UPPER('EXP_MAA')||'/'|| UPPER('%')
            AND TO_CHAR(exe_ordre) = TO_CHAR('2013')
            AND cpt_login = 'plemenager'
            AND CODE_ANALYTIQUE LIKE 'MAA-code attente'
            AND PCO_NUM LIKE '%'
    UNION ALL
    SELECT
            UB,
            CR,
            SOUS_CR,
            TYPE_CREDIT,
            CODE_ANALYTIQUE,
            CODE_ANALYTIQUE_LIBELLE,
            PCO_NUM,
            PCO_LIBELLE,
            COMMANDE_NUMERO,
            ENGAGE_NUMERO,
            ENGAGE_DATE,
            ENGAGE_LIBELLE,
            FOURNISSEUR_CODE,
            FOURNISSEUR_NOM,
            MONTANT_ENGAGEMENT_GLOBAL,
            RESTE_ENGAGE_GLOBAL,
            0,
            0,
            MONTANT_LIQUIDE_ANALYTIQUE,
            MONTANT_LIQUIDE_IMPUTATION
    FROM jefy_depense.v_enfa_liquide_analy_imput
    WHERE UPPER(UB || '/' || NVL(CR,'non defini') || '/' || NVL(SOUS_CR, 'non defini')) LIKE UPPER('900')||'/'|| UPPER('EXP_MAA')||'/'|| UPPER('%')
            AND TO_CHAR(exe_ordre) = TO_CHAR('2013')
            AND cpt_login = 'plemenager'
            AND CODE_ANALYTIQUE LIKE 'MAA-code attente'
            AND PCO_NUM LIKE '%'
    ORDER BY UB, CR NULLs FIRST, SOUS_CR NULLs FIRST, CODE_ANALYTIQUE, ENGAGE_NUMERO, COMMANDE_NUMERO
    Voici l'erreur trouvée dans les logs du logiciel :
    ORA-00600: internal error code, arguments: [qctcte1], [0], [], [], [], [], [], [], [], [], [], []

    java.lang.Exception: Erreur creation xls
    - template = sit_dep_liste_eng_liq_avec_imput_jxls.xls
    - sql = SELECT
    UB,
    CR,
    ...
    m'a orienté sur cette page qui me suggère un problème de "Inconsistent datatype", ce qui m'a conduit à essayer d'ajouter les TO_CHAR dans le WHERE mais sans succès.

    Pour info, si quelqu'un connaît, il s'agit du logiciel Situations, élément de la sphère Jefyco dans l'ERP de l'enseignement supérieur nommé Cocktail.

    Une idée ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    ORA-00600 normalement c'est contact direct avec le support Oracle.

    Vu que ça fonctionne dans SQL Developer, c'est quand même étrange.

    Que se passe-t-il si la requête est placée dans une vue et que c'est cette vue qui est appelée depuis le logiciel ?

  3. #3
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Pas trop possible car les critères des deux WHERE sont passés par le logiciel.
    Je pourrais peut-être faire un UNION ALL général et un WHERE global mais bon...

  4. #4
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Bonjour CinePhil,

    Pour les ORA-00600, je vous suggère de commencer par regarder la note 153788.1.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    En dehors du support, vous pourriez essayer de diviser la requete en deux, ,voir si ça plante, et pareil en enlevant mes conditions where une par une. Eventuellement cous pourriez trouver LA chose qui fait planter la requete

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Ca ressemble terriblement à ce qui est décrit dans la doc 9826065.8, le workaround proposé par Oracle est le suivant : Set "_optimizer_cost_based_transformation"=off ou Set _fix_control='7597159:off'

    La 11.2.0.3 corrige ce bug

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Interdire toute transformation par l'optimiseur semble excessif.

    La requête semble déjà taper sur des vues, si le code est modifiable, qu'est ce que ça donne avec le hint /*+ NO_QUERY_TRANSFORMATION */ placé dans les SELECT de la requête.

  8. #8
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Mes recherches sur Internet m'ont donné quelques pistes et il semble que la source du problème soit le ORDER BY.
    Je l'ai viré et ça fonctionne.

    Merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur ora-01839 sur une requête.
    Par pascal_T dans le forum SQL
    Réponses: 6
    Dernier message: 09/10/2009, 17h48
  2. Erreur ORA-00600
    Par squalito dans le forum Oracle
    Réponses: 1
    Dernier message: 11/10/2005, 15h15
  3. Erreur ORA-01555 sur un select
    Par LRI dans le forum Oracle
    Réponses: 2
    Dernier message: 13/05/2005, 11h42
  4. Erreur ORA-04082 sur un trigger
    Par elcaro92 dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2005, 22h30
  5. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 15h56

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