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-01455 en utilisant un DBLINK


Sujet :

Oracle

  1. #1
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut ORA-01455 en utilisant un DBLINK
    Bonjour

    j'execute une requette sur une base distante par un DBLINK
    dès que cette requette ramene trop d'enregistrement
    j'obtiens l'erreur :

    ORA-01455: débordement de capacité pour type de données entier en conversion de colonne


    la base local est en "Oracle9i Release 9.2.0.1.0 - Production"
    et la distante est en "Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production"

    D'avance merci pour votre aide
    Michael

  2. #2
    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
    Tu essayes probablement de mettre à jour une table avec les valeurs du table distante et les colonnes n'ont pas la même taille

    http://ora-01455.ora-code.com/

  3. #3
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    Tu essayes probablement de mettre à jour une table avec les valeurs du table distante et les colonnes n'ont pas la même taille

    http://ora-01455.ora-code.com/
    non, je ne mets rien à jour, je fais juste un select

    du genre : select * from INT_COMMUNES@SLX

  4. #4
    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
    ce serait pas plutôt du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ...
    INTO mavar
    FROM tab@dblink
    WHERE ...
    Et mavar n'aurait pas le bon format ?

    Et si vous donniez la requête ?

  5. #5
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    ce serait pas plutôt du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ...
    INTO mavar
    FROM tab@dblink
    WHERE ...
    Et mavar n'aurait pas le bon format ?

    Et si vous donniez la requête ?
    non ce n'est même pas un select into

    C'est un simple select, que je demande tout les colonnes ( par *) ou que je les nomme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from INT_COMMUNES@SLX
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select COMMUNE_ID, CODE_COMMUNE, CODE_PAYS, 
           CODE_POSTAL, CODE_INSEE, NOM_COMMUNE, 
           DATE_ENTREE_INT, NUM_TRT, DATE_TRT 
    from INT_COMMUNES@SLX
    si j'ajoute un where ROWNUM = 1
    j'obtiens bien une ligne mais des que je demande plus d'une ligne j'ai le mess d'erreur.


    PS : je viens d'ouvrir une TAR sur metalink

  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
    INT_COMMUNES c'est quoi comme objet (table, vue, snapshot...) ?

    Et il n'y a pas de clause WHERE ?

    bizare...

  7. #7
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Quelque infos en plus
    ce message je l'obtiens avec TOAD

    je viens de tester sur SQL*plus (v8 )

    et j'ai ce message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL> select * from comptes_gesop@test9;
    ERROR :
    ORA-01801: format date trop grand par rapport à la mémoire tampon interne

    je ne sais pas si ca peut etre utile pour vous

    merci

  8. #8
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    INT_COMMUNES c'est quoi comme objet (table, vue, snapshot...) ?

    Et il n'y a pas de clause WHERE ?

    bizare...
    Oui c'est une table, je peut en mettre une autre, et j'ai le meme pb

    non il n'y a pas de clause where

    merci

  9. #9
    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
    Il y a un bug sinon :
    9014 [BUG:2222694] ORA-3106/ORA-1455/ORA-1426 possible for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OCI_EXACT_FETCH array fetch over dblink
    A part ça : http://ora-01801.ora-code.com/

  10. #10
    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
    essaye d'autre format de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set NLS_date_format = 'MM-DD-YYYY HH24:MI:SS';

  11. #11
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    essaye d'autre format de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set NLS_date_format = 'MM-DD-YYYY HH24:MI:SS';
    pareil :'( :'(

    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
    SQL> alter session set NLS_date_format = 'MM-DD-YYYY HH24:MI:SS';
     
    Session modifiée.
     
    SQL> 
    SQL> select * from comptes_gesop@test9;
    ERROR :
    ORA-01801: format date trop grand par rapport à la mémoire tampon interne
     
    aucune ligne sélectionnée
     
     
    SQL> alter session set NLS_date_format = 'MM-DD-YYYY';
     
    Session modifiée.
     
    SQL> select * from comptes_gesop@test9;
    ERROR :
    ORA-01801: format date trop grand par rapport à la mémoire tampon interne
     
    aucune ligne sélectionnée
     
    SQL> alter session set NLS_date_format = 'YYYY';
     
    Session modifiée.
     
    SQL> select * from comptes_gesop@test9;
    ERROR :
    ORA-01801: format date trop grand par rapport à la mémoire tampon interne
     
    aucune ligne sélectionnée


    merci
    Michael

  12. #12
    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
    et en faisant un TO_CHAR sur les colonnes DATE ?

  13. #13
    CD
    CD est déconnecté
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 151
    Points
    151
    Par défaut
    Et serait-il possible d'avoir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dump(MaDate) from comptes_gesop@test9 where rownum < 10;

  14. #14
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par CD
    Et serait-il possible d'avoir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dump(MaDate) from comptes_gesop@test9 where rownum < 10;

    voila


    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
    SQL> select dump(DATE_CREATION) from comptes_gesop@test9 where rownum < 10;
     
    DUMP(DATE_CREATION)
    -------------------------------------------------------------------------------------
    Typ=12 Len=7: 120,104,8,26,18,48,28
    Typ=12 Len=7: 120,104,9,15,19,13,56
    Typ=12 Len=7: 120,104,11,17,18,19,34
    Typ=12 Len=7: 120,104,11,17,18,21,20
    Typ=12 Len=7: 120,104,11,17,18,31,8
    Typ=12 Len=7: 120,104,8,30,16,28,59
    Typ=12 Len=7: 120,104,8,30,16,39,38
    Typ=12 Len=7: 120,104,10,7,16,22,29
    Typ=12 Len=7: 120,104,11,10,16,6,57
     
    9 ligne(s) sélectionnée(s).
     
    SQL>

    merci

  15. #15
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    et en faisant un TO_CHAR sur les colonnes DATE ?
    si je selectionne toutes les colonnes et que transforme les 2 champs DATE en CHAR

    j'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR :
    ORA-03106: erreur fatale du protocole de communication bi-tache

  16. #16
    CD
    CD est déconnecté
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 151
    Points
    151
    Par défaut
    Le problème du code ORA-01801 peut provenir d'une mauvaise insertion d'une date dans l'une des colonnes utilisées.

    Il peut être intéressant de voir si les dates sont justement stockées au bon format. La fonction DUMP permet de savoir exactement comment sont stockées les colonnes en question :

    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
    select * from (
    select 	DUMP,
    	substr(DUMP, instr(DUMP,':',1,1)+2, instr(DUMP,',',1,1)-2-instr(DUMP,':',1,1)) Siecle,
    	substr(DUMP, instr(DUMP,',',1,1)+1, instr(DUMP,',',1,2)-1-instr(DUMP,',',1,1)) Annee,
    	substr(DUMP, instr(DUMP,',',1,2)+1, instr(DUMP,',',1,3)-1-instr(DUMP,',',1,2)) Mois,
    	substr(DUMP, instr(DUMP,',',1,3)+1, instr(DUMP,',',1,4)-1-instr(DUMP,',',1,3)) Jour,
    	substr(DUMP, instr(DUMP,',',1,4)+1, instr(DUMP,',',1,5)-1-instr(DUMP,',',1,4)) Heure,
    	substr(DUMP, instr(DUMP,',',1,5)+1, instr(DUMP,',',1,6)-1-instr(DUMP,',',1,5)) Minute,
    	substr(DUMP, instr(DUMP,',',1,6)+1) Seconde
    from (select dump(DATE_CREATION) DUMP from comptes_gesop@test9)
    where not seconde between 1 and 60 
    or NOT minute between 1 and 60 
    or NOT heure between 1 and 24
    or NOT jour between 1 and 31
    or not mois between 1 and 12
    or not annee between 100 and 199
    or not siecle between 119 and 120 ;
    Je ne connais pas les bornes exactes pour le siècle, mais déjà, je sais qu'on peut aller jusqu'à 199 (99ième siècle). J'ai mis le test sur le siècle sur les années 1900 et 2000.

  17. #17
    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
    rhooo l'erreur qui tue

  18. #18
    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
    http://ora-03106.ora-code.com/

    Action: Contact Oracle Support Services.
    rassurant

    Est-ce qu'il n'y a pas eu d'actions sur cette table : import, restauration, etc... ?

  19. #19
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par orafrance
    http://ora-03106.ora-code.com/

    Action: Contact Oracle Support Services.
    rassurant

    Est-ce qu'il n'y a pas eu d'actions sur cette table : import, restauration, etc... ?
    Peu importe la table utilisée dans la requête, j'ai tjrs un message d'erreur :'(

    je pense plus pour une mauvaise configuration de la base pour l'utilisation des DBlink

  20. #20
    Membre à l'essai Avatar de Kit59
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Novembre 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Novembre 2002
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par CD
    Le problème du code ORA-01801 peut provenir d'une mauvaise insertion d'une date dans l'une des colonnes utilisées.

    Il peut être intéressant de voir si les dates sont justement stockées au bon format. La fonction DUMP permet de savoir exactement comment sont stockées les colonnes en question :

    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
    select * from (
    select 	DUMP,
    	substr(DUMP, instr(DUMP,':',1,1)+2, instr(DUMP,',',1,1)-2-instr(DUMP,':',1,1)) Siecle,
    	substr(DUMP, instr(DUMP,',',1,1)+1, instr(DUMP,',',1,2)-1-instr(DUMP,',',1,1)) Annee,
    	substr(DUMP, instr(DUMP,',',1,2)+1, instr(DUMP,',',1,3)-1-instr(DUMP,',',1,2)) Mois,
    	substr(DUMP, instr(DUMP,',',1,3)+1, instr(DUMP,',',1,4)-1-instr(DUMP,',',1,3)) Jour,
    	substr(DUMP, instr(DUMP,',',1,4)+1, instr(DUMP,',',1,5)-1-instr(DUMP,',',1,4)) Heure,
    	substr(DUMP, instr(DUMP,',',1,5)+1, instr(DUMP,',',1,6)-1-instr(DUMP,',',1,5)) Minute,
    	substr(DUMP, instr(DUMP,',',1,6)+1) Seconde
    from (select dump(DATE_CREATION) DUMP from comptes_gesop@test9)
    where not seconde between 1 and 60 
    or NOT minute between 1 and 60 
    or NOT heure between 1 and 24
    or NOT jour between 1 and 31
    or not mois between 1 and 12
    or not annee between 100 and 199
    or not siecle between 119 and 120 ;
    Je ne connais pas les bornes exactes pour le siècle, mais déjà, je sais qu'on peut aller jusqu'à 199 (99ième siècle). J'ai mis le test sur le siècle sur les années 1900 et 2000.
    cette requête ne me retourne pas de ligne

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ORA-13863 à l'utilisation de DBMS_MONITOR
    Par Cofondinde dans le forum Administration
    Réponses: 0
    Dernier message: 26/10/2009, 10h45
  2. [PB 10.5] Utilisation des DBLINK
    Par Kalini dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 17/06/2009, 11h42
  3. Probleme utilisation du dblink
    Par zaineb.z dans le forum Administration
    Réponses: 1
    Dernier message: 05/06/2009, 13h40
  4. Utilisation de DBlink
    Par estalol1 dans le forum Administration
    Réponses: 23
    Dernier message: 19/01/2007, 11h13
  5. [9.2] utilisation du dbLink
    Par robris dans le forum Oracle
    Réponses: 2
    Dernier message: 03/02/2006, 16h42

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