en clair ça fait quoi?
ta question est un peu brouillon, pourrais-tu stpl reformuler?
en clair ça fait quoi?
ta question est un peu brouillon, pourrais-tu stpl reformuler?
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
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 :
Tu veux modifier Chp2(Chp1,Chp2,Chp3,Chp4)
Tu crées les ChpNx
Tu updates(Chp1, Chp2, Chp3, Chp4, ChpN2, ChpN3, ChpN4)Tu supprimes Chp2, Chp3, Chp4
Code : Sélectionner tout - Visualiser dans une fenêtre à part ChpN2 = Chp2, ChpN3 = Chp3, ChpN4 = Chp4
ResteEt tu renommes les ChpNx en ChpxChp1, ChpN2, ChpN3, ChpN4
soit avec dbms_redefinition soit alors un CTAS (create table as select) suivi d'un RENAME
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
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.
est ce que on n a pas besoin de recréer les declancheurs les contraintes et les indexes ?
oui
"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.Envoyé par nourdev
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
bizarre, pas chez moi. testé en 9207,10105 et 10202
Bonjour,
Excusez moi mais j'ai pas bien saisie ce que vous avez dit(testé en 9207,10105 et 10202)?
Merci
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?
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
c'est bien ce que je pensais
regarde ma requête plus attentivement stpl
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.Envoyé par nourdev
ok merci bcp je pense que c'est bien resolu
merci encor et a bientot
cordaillement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager