Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
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 06/07/2004, 08h49   #1
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Par défaut [DB2] conversion BLOB -> CLOB

SGBDR : DB2-400 V5R2
Système : OS400

Comment convertir un champ de type BLOB et CLOB via SQL ?

Suis-je retombé à l'âge du paléolithique ?
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2004, 21h26   #2
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
Que veut tu dir par convertir ?????
????
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2004, 21h37   #3
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
https://aurora.vcu.edu/db2help/db2s0/frame3.htm#sqlintr
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2004, 11h16   #4
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Citation:
Envoyé par denisys
Que veut tu dir par convertir ?????
Convertir = transformer un champ de type BLOB(1024000) en un champ de type CLOB(2048000) en gardant les données existantes.

La commande ALTE TABLE serait idéalement
Code :
ALTER TABLE FCELAIA/MATABLE ALTER COLUMN B SET DATA TYPE CLOB (2048000)
malheureusement, cette conversion ne se fait pas si aisément sous DB2 avec ce genre de type:
Code :
 Attributs de la colonne B de MATABLE dans FCELAIA incompatibles.
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2004, 17h48   #5
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
Cela doit peut être venir de la version de DB2
Citation:
SGBDR : DB2-400 V5R2
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2004, 10h46   #6
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Je serai curieux d'avoir la preuve que cela marche en UDB derniere release

Mais que faaaire

c'est incroyable, ce modèle de genres sur DB2 : certaines fonctionalités basiques n'existent toujours pas tandis que d'autres très évoluées existent depuis des années
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2004, 12h41   #7
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
Je toujours essayer un test de week end avec la version 8 de DB2
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2004, 14h04   #8
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
La version n’y est pour rien apparemment
C’est la version 8.1 pour windows

Code :
1
2
3
4
5
6
7
8
9
10
db2 => CREATE TABLE fadace1(nclob clob(1024000))
DB20000I La commande SQL a abouti.
db2 => ALTER TABLE fadace1 ALTER COLUMN nclob SET DATA type clob(2048000)
DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit
pas d'une commande valide pour l'interpréteur de commandes.  Le message SQL
suivant a été renvoyé lors de  son traitement :
SQL0190N Les attributs spécifiés pour la colonne "NCLOB" de la table
"ADMINISTRATEUR.FADACE1" dans l'instruction ALTER TABLE ne sont pas
compatibles avec ceux de la colonne existante.  SQLSTATE=42837
db2 =>
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2004, 14h39   #9
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
D’après mes archives sur SQL DB2 la formule que tu utilise : " mofifie la taille de la colonne "
EX :
Code :
ALTER TABLE db2.tablob ALTER COLUMN  comment SET DATA TYPE VARCHAR(40)
J’ai fais un test avec une colonne en varchar(20) je l’ai passé en varchar(30) et c’est OK
Mais elle ne change pas le type de colonne.
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 07h24   #10
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
C'est bien ce que je redoutais: retombé à l'âge du paléolithique

Sur certains points évolués, DB2 est remarquable comparé aux autres SGBDR (ex. jointures ANSI depuis les années 90), pour d'autres basiques, c'est le burin et la tablette de marbre...

Ma question rste entière : comment faire cette conversion ?
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 07h37   #11
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
Citation:
comment faire cette conversion ?

et si tu changé de stratégie ????
oui , car les types de données BLOB et CLOB ont des attributs !!!
je m’explique , lorsque j’ai simplement voulue changer la taille a une colonne de type BLOB
DB2 a refusé ce changement en me lançant un message comme quoi les attributs de la colonne ne permettents de modifications.
Je suis allé voir comment étais faite cette colonne par l’interface graphique de DB2, et effectivement il y a des attributs (ou des options : comme tu veux) permettant de gérer les données .
Donc stratégie :
Si tu ajoute une colonne du type voulue , que tu copie les donnés dans cette colonne , est ce que ça le fait ????
Mais prudence , ne supprime pas , ni les données , ni la colonne dans un premier temp .
denisys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 11h51   #12
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Non, car lors de la copie, DB2 essaie de faire le changement de type via conversion... et cintre avec le même msg d'erreur. La seule solution que je vois pour l'instant est l'écriture d'un programme (Java ou autre) lisant le blob et le transférant dans un clob... le problème, c'est que ce type de manipulation via programmation cliente est lent... et ma table est monstrueuse.
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 12h09   #13
Membre émérite
 
Avatar de denisys
 
Inscription : mai 2002
Messages : 831
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 831
Points : 891
Points : 891
Mais tu est sur de cela ????

http://www-306.ibm.com/cgi-bin/db2ww...7s0frm3toc.htm
denisys 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 11h49.


 
 
 
 
Partenaires

Hébergement Web