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 :

[8i]Comment modifier un LONG en CLOB ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [8i]Comment modifier un LONG en CLOB ?
    Bonjour,

    Je souhaiterais modifier la structure d'une colonne d'une table de LONG vers CLOB.

    Cette instruction fonctionne parfaitement en 10gR1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table dvp modify <my_col_long> clob;
    Mais en 8i, j'ai le message d'erreur suivant :
    8i CYRIL> alter table dvp modify x clob;
    alter table dvp modify x clob
    *
    ERROR à la ligne 1 :
    ORA-22858: invalid alteration of datatype
    Comment puis-je procéder indépendamment de la version d'Oracle ?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Utiliser la fonction TO_LOB avec ajout de colonne CLOB puis suppression de la colonne LONG:

    http://download-west.oracle.com/docs...tion.htm#79466

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Un modérateur qui ne lit pas les tuto, on aura tout vu
    http://helyos.developpez.com/lob/

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Salut tous les 2,

    Citation Envoyé par plaineR
    Un modérateur qui ne lit pas les tuto, on aura tout vu
    http://helyos.developpez.com/lob/
    Si si mais c'est marqué dans le titre, ce n'est valable qu'à partir de la version 9i et je coince en version 8 (pour la 10gR1, c'est ok)
    Ceci dit, j'ai essayé ce que fait Helyos et :
    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
    8i CYRIL> select to_lob(an_comment)
      2  from b2800;
    select to_lob(an_comment)
           *
    ERROR à la ligne 1 :
    ORA-00932: inconsistent datatypes
     
    8i CYRIL> select *
      2  from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
    PL/SQL Release 8.1.7.4.0 - Production
    CORE    8.1.7.0.0       Production
    TNS for Linux: Version 8.1.7.4.0 - Production
    NLSRTL Version 3.4.1.0.0 - Production
     
    5 ligne(s) sélectionnée(s).
    >> Pifor : je vais étudier votre conseil mais j'ajoute que je veux conserver l'ordre des colonnes et ne pas avoir à vider la table.

    Merci à vous 2.

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Salut Magnus,

    Tu ne peux pas l'afficher, mais cela ne veut pas dire que tu ne peux pas l'insérer :
    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
    SQL> show release
    release 801070000
    SQL> desc t_long
     Name                            Null?    Type
     ------------------------------- -------- ----
     N                                        NUMBER
     L                                        LONG
     
    SQL> desc t_clob
     Name                            Null?    Type
     ------------------------------- -------- ----
     N                                        NUMBER
     C                                        CLOB
     
    SQL> select n, to_lob (l) from t_long;
    select n, to_lob (l) from t_long
              *
    ERROR at line 1:
    ORA-00932: inconsistent datatypes
     
    SQL> insert into t_clob select n, to_lob (l) from t_long;
    1 row created.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Ahhhh ok.
    J'ai déjà vu un peu ce genre de comportement avec le type BOOLEAN en PL/SQL que l'on manipuler sans jamais l'afficher.

    Effectivement ton code fonctionne parfaitement en 8i et je note donc qu'il est possible de modifier une colonne de LONG en CLOB en 8i en utilisant une colonne temporaire ou une table temporaire.
    L'utilisation d'une table temporaire permettant de conserver l'ordre des colonnes mais nécessitant d'utiliser l'instruction RENAME et de recréer les triggers et index associés à cette table.

    Merci encore du coup de pouce.

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  3. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27
  4. [CR]Comment faire de longs commentaires dans le code
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/06/2004, 20h45
  5. [ClassPath] Comment modifier le classpath d'eclipse?
    Par Elmilouse dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/04/2004, 18h32

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