Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/08/2007, 11h22   #1
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
Par défaut Changer le type d'un champ

Bonjour,

Je voudrais modifier le type d'un champ de ma base de données Oracle qui est actuellement en VARCHAR(30) en LONG.

J'ai tapé la ligne de code suivante :
Code :
ALTER TABLE individu MODIFY INDIV_PRE2 LONG;
mais j'obtiens l'erreur suivante :
Code :
[Microsoft][ODBC driver FOR Oracle][Oracle]ORA-01439: une colonne doit être vide pour pouvoir modifier son type de données
Comment puis je faire ?

Merci d'avance pour votre aide
BOnne journée
Ludo
lelectronique.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 11h24   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
http://www.developpez.net/forums/showthread.php?t=30569
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 11h54   #3
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
désolé il s'agit de la version 9i
lelectronique.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 12h01   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
dans ce cas, je te conseille plutôt d'utiliser le CLOB en lieu et place du LONG qui pose de gros problème d'administration et de développement (pas de INSTR ou SUBSTR par exemple).

Sinon, je crains que tu n'aies d'autre choix que de :
- créer la colonne du bon type
- updater la colonne avec les valeurs de l'ancienne colonne
- dropper l'ancienne colonne
- renommer la colonne avec le nom de l'ancienne colonne

Exemple trouvé sur asktom :
Code :
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
32
33
34
SQL> CREATE TABLE blah_dk
  2        (num_col   number)
  3  /
 
TABLE created.
 
SQL> INSERT INTO blah_dk
  2  SELECT rownum FROM all_objects
  3  WHERE rownum < 11
  4  /
 
10 rows created.
 
SQL> commit
  2  /
 
Commit complete.
 
SQL> ALTER TABLE blah_dk ADD 
  2        (varchar_col   varchar2(3))
  3  /
 
TABLE altered.
 
SQL> UPDATE blah_dk
  2  SET varchar_col = num_col
  3  /
 
10 rows updated.
 
SQL> ALTER TABLE blah_dk DROP COLUMN num_col
  2  /
 
TABLE altered.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 15h39   #5
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
ok pas cool tout çà c'est beaucoup plus simple sous MySQL quand même...
je vais essayer
merci de ton aide
lelectronique.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h36.


 
 
 
 
Partenaires

Hébergement Web