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

Oracle Discussion :

ORA-00910 Probléme Cast


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut ORA-00910 Probléme Cast
    Voila l'environnement est une Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production.

    La requête qui pose probléme est la suivante:


    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
     
    SELECT distinct cast(SO0.nrid AS VARCHAR2(15)) AS RefPartenaire,
                            SO0.societe AS NomCommercial,
                            SO0.adresse AS Adresse,
                            SO0.complement AS Complement,
                            SO0.street_nb AS Norue,
                            SO0.code_post AS CodePostal,
                            SO0.loc AS Commune,
                            NVL(SO0.tel1, SO0.tel2) AS Telephone,
                            SO0.e_mail AS Mail,
                            SO0.web_link AS SiteWeb,
                            '0' AS IsPartenaireSouhait,
                            DECODE(SO0.var65, 'Réseau', '1', '0') AS IsPartenaireReseau,
                            NVL(Xattrib_part.date_attrib,TO_DATE('19000101', 'YYYYMMDD'))
              FROM PR0,
                   XPR0_OFFRES,
                   SO0,
                   XSO0_ZONE,
                   XZONES_COMMUNE,
                   sysadm.xattrib_part
             WHERE pr0.so0_nrid = so0.nrid
               and pr0.var1 = 'Réseau Partenaire'
               and pr0.var2 = 'Signée'
               and xpr0_offres.pr0_nrid = pr0.nrid
               and xpr0_offres.type_nrid = 'MAINTEN'
               and xpr0_offres.marque_nrid = 'DV'
               and XSO0_ZONE.so0_nrid = SO0.nrid
               and XZONES_COMMUNE.id_commune = XSO0_ZONE.id_commune
               and XZONES_COMMUNE.code_insee LIKE SUBSTR('92000', 1, 2) || '%'
               and xattrib_part.so0_nrid(+) = SO0.nrid
               and xattrib_part.type_offre(+) = 'Maintenance'
             ORDER BY NVL(Xattrib_part.date_attrib,
                          TO_DATE('19000101', 'YYYYMMDD')),
                      SO0.societe;
    Les erreurs produites sont:

    ORA-12801:Error signaled in Parralel Query Server P001.
    ORA-00910:Specified length too long for its datatype.

    Cette requête fonctionne en prod, telle quelle.

    Si j'enléve le cast sur le champ SOO.NRID, la requête fonctionne également. Le champ S00 NRID est un NUMBER de 15.

    Pouvez vous m'aider à résoudre ce probléme autrement qu'en modifiant la requête et en supprimant le CAST ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    la connection se fais via JDBC ou SQL*Net ?

    Qu'est ce que ça donne si tu changes ta session ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set nls_length_semantics=byte;
    Et TO_CHAR à la place de CAST ça donne quoi ?

    Enfin essaye de remplacer le CAST par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast(NVL(SO0.nrid,0) AS VARCHAR2(15))
    juste pour voir si c'est pas des valeurs NULL qui poseraient problème

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut
    Citation Envoyé par orafrance Voir le message
    la connection se fais via JDBC ou SQL*Net ?

    Qu'est ce que ça donne si tu changes ta session ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set nls_length_semantics=byte;
    Et TO_CHAR à la place de CAST ça donne quoi ?

    Enfin essaye de remplacer le CAST par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast(NVL(SO0.nrid,0) AS VARCHAR2(15))
    juste pour voir si c'est pas des valeurs NULL qui poseraient problème

    Pour nls_length_semantics la valeur indiqué est déjà Byte.

    La fonction TO_CHAR fonctionne, ce qui régle mon probléme. Je te remerci OraFrance.

    Cordialement D_light.

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

Discussions similaires

  1. ORA-00942: Problème de droits ?
    Par michel baily dans le forum Oracle
    Réponses: 6
    Dernier message: 09/10/2006, 14h23
  2. Réponses: 2
    Dernier message: 08/10/2006, 17h35
  3. Réponses: 10
    Dernier message: 20/04/2006, 07h23
  4. ORA-01190 Problème après Activation BDD Standby
    Par Sergio_free dans le forum Oracle
    Réponses: 2
    Dernier message: 23/10/2005, 00h38
  5. Problème Cast avec NULL values
    Par WwiloO dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/10/2005, 10h49

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