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 Oracle Discussion :

ERREUR oracle ORA-00997


Sujet :

Administration Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut ERREUR oracle ORA-00997
    bonjour,
    j'ai utilisée une requete select pour selectionnée des données en utilisant un lien db link
    le message suivant apparait
    ORA-00997: Utilisation interdite du type de données LONG

    voilà la requete:
    SELECT porder_.po_ref, supplier_ext.supl_cd,
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    ),
    CHR (po_status), po_curr_cd, 'supervisor',
    (CASE
    WHEN dt_porder IS NULL
    THEN NULL
    WHEN dt_porder = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (dt_porder, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    ),
    po_authority, po_cc, po_account, po_payment_due,
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    )
    -- IIf([PO_DT] IS NULL,"",IIf([PO_DT]=0,"",DateSerial(YEAR([PO_DT]),MONTH([PO_DT]),DAY(([PO_DT])+1)))) AS pour_le
    FROM cw4ora.porder_@fuba INNER JOIN cw4ora.supplier_ext@fuba
    ON s_supl_po = pk_supplier_
    ;

    j'ai simulé le probleme:
    quand j'élimine les champs de type date:
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    )
    le message diparait, je peut selectionné que les champs de type texte ou numérique!
    il y a il une solution radicale pour ce probelme et merci d'avance

  2. #2
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    désolé mais comme ça c'est illisible

  3. #3
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    L'un des raisons est probablement referencee dans la note SQL*Plus Top 20 Issues

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    bonjour,
    j'ai utilisée une requete select pour selectionnée des données en utilisant un lien db link
    le message suivant apparait
    ORA-00997: Utilisation interdite du type de données LONG

    voilà la requete:
    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
     
    SELECT porder_.po_ref, supplier_ext.supl_cd,
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    ),
    CHR (po_status), po_curr_cd, 'supervisor',
    (CASE
    WHEN dt_porder IS NULL
    THEN NULL
    WHEN dt_porder = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (dt_porder, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    ),
    po_authority, po_cc, po_account, po_payment_due,
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    )
    -- IIf([PO_DT] IS NULL,"",IIf([PO_DT]=0,"",DateSerial(YEAR([PO_DT]),MONTH([PO_DT]),DAY(([PO_DT])+1)))) AS pour_le
    FROM cw4ora.porder_@fuba INNER JOIN cw4ora.supplier_ext@fuba
    ON s_supl_po = pk_supplier_
    ;
    j'ai simulé le probleme:
    quand j'élimine les champs de type date:
    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
     
    (CASE
    WHEN po_dt IS NULL
    THEN NULL
    WHEN po_dt = 0
    THEN NULL
    ELSE (TO_CHAR (( TO_DATE ('01-01-1900', 'DD-MM-YYYY')
    + NVL (po_dt, 0)
    - 1
    ),
    'DD/MM/YYYY'
    )
    )
    END
    )
    le message diparait, je peut selectionné que les champs de type texte ou numérique!
    il y a il une solution radicale pour ce probelme et merci d'avance

  5. #5
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    A tout hasard, j'avais déjà eu une requête similaire qui m'avait posé problème, mais je ne me rappelle pas si c'était le même message d'erreur.
    On avait en fait des CASE WHEN et des vues où la première version du champ était NULL.
    On avait résolu cela en faisant TO_DATE(NULL) et TO_NUMBER(NULL) suivant les cas.
    Je sais pas si c'est vraiment cela ton problème, mais ca ne coûte rien d'essayer

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    merci mais j'ai trouvé la solution, j'ai fait ca a partie de l'autre base de données:
    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
    57
    58
    59
     
    INSERT INTO COSWIN.t_order_@COS7
                (popo_code, popo_supplier, popo_date, popo_status, popo_currency,
                 popo_creator, popo_creation_date, popo_entity, popo_costcentre,
                 popo_account, popo_payment_due, popo_expected_date)
       SELECT PORDER_.po_ref, supplier_ext.supl_cd,
              (CASE
                  WHEN po_dt IS NULL
                     THEN NULL
                  WHEN po_dt = 0
                     THEN NULL
                  ELSE (TO_CHAR ((  TO_DATE ('01-01-1900', 'DD-MM-YYYY')
                                  + NVL (po_dt, 0)
                                  - 1
                                 ),
                                 'DD/MM/YYYY'
                                )
                       )
               END
              ),
              CHR (po_status), po_curr_cd, 'supervisor',
              (CASE
                  WHEN dt_porder IS NULL
                     THEN NULL
                  WHEN dt_porder = 0
                     THEN NULL
                  ELSE (TO_CHAR ((  TO_DATE ('01-01-1900', 'DD-MM-YYYY')
                                  + NVL (dt_porder, 0)
                                  - 1
                                 ),
                                 'DD/MM/YYYY'
                                )
                       )
               END
              ),
              (CASE
    		  WHEN po_authority IS NULL
    		  THEN (SELECT VALUE FROM PARAMETERS WHERE code='COMP_ENT_DEFAULT')
    		  ELSE po_authority
    		  END 
    		  )
    		  , po_cc, po_account, po_payment_due,
              (CASE
                  WHEN po_dt IS NULL
                     THEN NULL
                  WHEN po_dt = 0
                     THEN NULL
                  ELSE (TO_CHAR ((  TO_DATE ('01-01-1900', 'DD-MM-YYYY')
                                  + NVL (po_dt, 0)
                                  - 1
                                 ),
                                 'DD/MM/YYYY'
                                )
                       )
               END
              )
         FROM PORDER_ INNER JOIN supplier_ext ON s_supl_po = pk_supplier_
              ;
    COMMIT;

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

Discussions similaires

  1. Erreur ORACLE Ora-19815
    Par satanas dans le forum Oracle
    Réponses: 10
    Dernier message: 30/05/2007, 15h46
  2. Erreur oracle ora-03232
    Par rochenico dans le forum Administration
    Réponses: 15
    Dernier message: 20/11/2006, 17h13
  3. Erreur oracle : ORA-01036
    Par freestyler1982 dans le forum Oracle
    Réponses: 1
    Dernier message: 14/11/2006, 10h29
  4. Erreur Oracle ORA-00959
    Par Longrais dans le forum Oracle
    Réponses: 1
    Dernier message: 03/10/2006, 10h49
  5. Erreur Oracle ORA-30036
    Par lapartdombre dans le forum Oracle
    Réponses: 5
    Dernier message: 04/11/2005, 15h37

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