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 :

Convertir un champ CLOB


Sujet :

Oracle

  1. #21
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    en clair ça fait quoi?

    ta question est un peu brouillon, pourrais-tu stpl reformuler?

  2. #22
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Ok,
    Je vous donne un exemple:
    j'ai une table de 4 champs (Chp1,Chp2,Chp3,Chp4) a savoir que le Chp2 est de type CLOB aprés la conversion cette table est devenu comme ca (Chp1,Chp3,Chp4,Chp2) la question est : est ce que il y a une methode pour ajouter ce champ et le placer dans sa position initiale ( la 2eme position) parce que il ya des application develeoppées liées a cette table donc si on change la position il faut absolument changer le code de ces applicatios (pas evident!!!) j'aimerai bien avoir une methode pour conserver la meme position si c'est possible??
    Merci

  3. #23
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Non, ce n'est pas possible de replacer une colonne en position 2.
    L'ordre des colonnes ne devrait pas bloquer une appli (toujours mettre le nom des colonne dans les INSERT)

    Si tu veux garder la même structure :
    (Chp1,Chp2,Chp3,Chp4)
    Tu veux modifier Chp2
    Tu crées les ChpNx
    (Chp1, Chp2, Chp3, Chp4, ChpN2, ChpN3, ChpN4)
    Tu updates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChpN2 = Chp2, ChpN3 = Chp3, ChpN4 = Chp4
    Tu supprimes Chp2, Chp3, Chp4
    Reste
    Chp1, ChpN2, ChpN3, ChpN4
    Et tu renommes les ChpNx en Chpx

  4. #24
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    soit avec dbms_redefinition soit alors un CTAS (create table as select) suivi d'un RENAME

  5. #25
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    oui c'est vrai dans ce cas vous avez tout simplement 4 champ c'est simple mais si vous avez 30 et + de champs c'est pas evident !!!
    Merci

  6. #26
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SQL> create table t1 (Chp1 number,Chp2 clob,Chp3 number,Chp4 number);
    Table created.
     
    SQL> create table t2 as select chp1,cast(chp2 as varchar2(4000)) chp2,chp3,chp4 from t1;
    Table created.
     
    SQL> drop table t1;
     
    Table dropped.
     
    SQL> rename t2 to t1;
    Table renamed.

  7. #27
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    est ce que on n a pas besoin de recréer les declancheurs les contraintes et les indexes ?

  8. #28
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    oui

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 674
    Points
    674
    Par défaut
    Citation Envoyé par nourdev
    parce que il ya des application develeoppées liées a cette table donc si on change la position il faut absolument changer le code de ces applications
    "donc" n'est pas le terme approprie. Si l'application etait ecrite dans les regles de l'art, elle serait a l'abri de ce genre de manipulation. Il faudra songer a rectifier l'application au plus vite.

  10. #30
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    le code suivant : SQL> create table t2 as select chp1,cast(chp2 as varchar2(4000)) chp2,chp3,chp4 from t1;
    donne cette ereur : ora-00998: must name this expression with a coumn alias

  11. #31
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    bizarre, pas chez moi. testé en 9207,10105 et 10202

  12. #32
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    Excusez moi mais j'ai pas bien saisie ce que vous avez dit(testé en 9207,10105 et 10202)?
    Merci

  13. #33
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    j'ai testé avec 9iR2, 10gR1 et 10gR2 et mon code ne donne pas d'erreur,

    sûrement une faute de frappe de ta part, non?

  14. #34
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Non je ne pense pas voila le code sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    : create table nom_table_1 as select champ1,cast(champ2 as varchar2(4000)),champ3 from nom_table_2

  15. #35
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    c'est bien ce que je pensais

    regarde ma requête plus attentivement stpl

  16. #36
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    oui vous avez raison excusez moi j'ai pas fait attention
    merci bcp ca marche mnt !
    d'apres vous je n'ai pas besoin de recréer les declancheurs, contraintes et les index?

  17. #37
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par nourdev
    oui vous avez raison excusez moi j'ai pas fait attention
    merci bcp ca marche mnt !
    d'apres vous je n'ai pas besoin de recréer les declancheurs, contraintes et les index?
    Il faut recréer les index, contraintes et triggers.

  18. #38
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    ok merci bcp je pense que c'est bien resolu
    merci encor et a bientot
    cordaillement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Convertir un champ CLOB() en number
    Par dinette dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2009, 14h51
  2. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26
  3. [Oracle] Insérer le texte d'un textarea dans un champ CLOB
    Par kum dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/10/2005, 17h29
  4. Comment convertir un champs en string ?
    Par kalisto95 dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 12h15
  5. [SQL] Convertir un champ INT en CHAR dans un SELECT ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/03/2005, 14h45

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