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 :

DB_Link et type LONG : ORA-00997


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 74
    Points
    74
    Par défaut DB_Link et type LONG : ORA-00997
    Bonjour,

    j'ai besoin de comparer les objets deux BD Oracle, le problème est la vue dba_views à cause la colonne text qui est du type long.
    j'utilise la fonction to_lob pour la convertir dans une autre colonne du type clob d'une nouvelle table pour pouvoir utiliser dbms_lob . Mais des que je fais référence à la vue de l'autre BD via un lien j'ai le message :

    ORA-00997: illegal use of LONG datatype
    Même la commande copy ne fonctionne pas et j'ai l'erreur:

    Error in SELECT statement: ORA-00932: inconsistent datatypes: expected - got LONG
    J'apprécierai toute suggestion.

    [Modération : Titre initial ("probleme type long de la vue dba_views") édité par LeoAnderson]

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Qu'est-ce qui vous gène dans le fait que la colonne soit de type LONG ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 74
    Points
    74
    Par défaut
    mes requetes donnent les messages d'erreurs cités.

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    j'ai bien compris, mais pourquoi vouloir transformer en LOB ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Mille excuses, je n'avais pas vu le problème du database link !!!
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Sur l'autre base, vous pouvez créer une fonction qui retourne un CLOB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE OR REPLACE FUNCTION text_clob ( PC$Objet IN VARCHAR2 ) RETURN CLOB
    IS
      LL$Long LONG ;
      LB$Lob  CLOB ;
    BEGIN
      SELECT text INTO LL$Long
      FROM dba_views
      WHERE VIEW_NAME = UPPER( PC$Objet ) ;
      LB$Lob := LL$Long ;
      RETURN( LB$Lob ) ;
    END ;
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  7. #7
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 74
    Points
    74
    Par défaut
    En utilisant cette focntion j'ai le message :

    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    mon select est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select view_name||' '||
           owner||' '||
           to_char(text_length)||' '||
           dbms_lob.substr(text_clob (view_name),text_length,1)
      from sys.dba_views@mon_lien;

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

Discussions similaires

  1. [oracle 9i] type de données long ora-00997
    Par Jonkile dans le forum Oracle
    Réponses: 6
    Dernier message: 20/08/2007, 10h09
  2. type LONG : ORA-00997
    Par sam.fet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/08/2007, 13h06
  3. Réponses: 1
    Dernier message: 18/10/2005, 11h48
  4. DBLink et types LONG/LONG RAW
    Par bchristo dans le forum Administration
    Réponses: 7
    Dernier message: 28/04/2004, 12h46
  5. DATABASE LINK + type Long et long raw ...
    Par bchristo dans le forum Administration
    Réponses: 21
    Dernier message: 26/04/2004, 15h27

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