OVH Cloud OVH Cloud

Update champ image

2 réponses
Avatar
OokieDookie
Bonjour à tous,

Je cherche à mettre à jour un champ image d'une base par le même champ d'une
autre base pour une ligne d'enregistrement.

J'ai donc tapé :
UPDATE BASE1..T_IMAGE SET Image =
(select Image from BASE2..T_IMAGE A
WHERE A.IdImage = 156417)
WHERE BASE1..T_IMAGE.IdImage = 158008

Et j'obtiens un message qui me dit que le type de données est incorrect dans
la sous requête ou l'expression d'agrégation...

Alors qu'en tapant quelque chose comme ça :
INSERT INTO T_IMAGE2(IdP, ImageRank, ImageData)
SELECT top 10 (IdP, ImageRank, ImageData) FROM T_IMAGE

Tout se passe bien.

J'ai compulsé l'aide en ligne, sans toutefois tout comprendre (je ne
manipule jamais ce type de données d'habitude). Je sais toutefois que les
images en question sont stockées dans une seule ligne (apparemment cela a une
importance).

Quelqu'un peut-il m'expliquer cette énigme, ou la marche à suivre ? J'ai
tenté de passer par des variables, mais sans succès .

PS : Je sais que le stockage d'image dans une BDD plutôt qu'un référentiel
fichier est sujet à controverse, mais je ne peux pas me permettre d'altérer
la structure de la table, et la base est en cours d'exploitation.

Merci et bonne journée.

2 réponses

Avatar
Gilles LE BARBIER
Essaye ça !!

UPDATE BASE1..T_IMAGE SET Image = A.Image
FROM BASE1..T_IMAGE orig
LEFT OUTER JOIN BASE2..T_IMAGE A ON A.IdImage = 156417
WHERE orig.IdImage = 158008

non testé :-)

Gilles

"OokieDookie" a écrit dans le message de news:

Bonjour à tous,

Je cherche à mettre à jour un champ image d'une base par le même champ
d'une
autre base pour une ligne d'enregistrement.

J'ai donc tapé :
UPDATE BASE1..T_IMAGE SET Image > (select Image from BASE2..T_IMAGE A
WHERE A.IdImage = 156417)
WHERE BASE1..T_IMAGE.IdImage = 158008

Et j'obtiens un message qui me dit que le type de données est incorrect
dans
la sous requête ou l'expression d'agrégation...

Alors qu'en tapant quelque chose comme ça :
INSERT INTO T_IMAGE2(IdP, ImageRank, ImageData)
SELECT top 10 (IdP, ImageRank, ImageData) FROM T_IMAGE

Tout se passe bien.

J'ai compulsé l'aide en ligne, sans toutefois tout comprendre (je ne
manipule jamais ce type de données d'habitude). Je sais toutefois que les
images en question sont stockées dans une seule ligne (apparemment cela a
une
importance).

Quelqu'un peut-il m'expliquer cette énigme, ou la marche à suivre ? J'ai
tenté de passer par des variables, mais sans succès .

PS : Je sais que le stockage d'image dans une BDD plutôt qu'un référentiel
fichier est sujet à controverse, mais je ne peux pas me permettre
d'altérer
la structure de la table, et la base est en cours d'exploitation.

Merci et bonne journée.




Avatar
OokieDookie
Je ne savais pas qu'on pouvait détourner les jointures comme ça :)

Ca marche parfaitement bien, tout le monde a retrouvé ses petits.
Merci énormément.

"Gilles LE BARBIER" a écrit :

Essaye ça !!

UPDATE BASE1..T_IMAGE SET Image = A.Image
FROM BASE1..T_IMAGE orig
LEFT OUTER JOIN BASE2..T_IMAGE A ON A.IdImage = 156417
WHERE orig.IdImage = 158008

non testé :-)

Gilles

"OokieDookie" a écrit dans le message de news:

> Bonjour à tous,
>
> Je cherche à mettre à jour un champ image d'une base par le même champ
> d'une
> autre base pour une ligne d'enregistrement.
>
> J'ai donc tapé :
> UPDATE BASE1..T_IMAGE SET Image > > (select Image from BASE2..T_IMAGE A
> WHERE A.IdImage = 156417)
> WHERE BASE1..T_IMAGE.IdImage = 158008
>
> Et j'obtiens un message qui me dit que le type de données est incorrect
> dans
> la sous requête ou l'expression d'agrégation...
>
> Alors qu'en tapant quelque chose comme ça :
> INSERT INTO T_IMAGE2(IdP, ImageRank, ImageData)
> SELECT top 10 (IdP, ImageRank, ImageData) FROM T_IMAGE
>
> Tout se passe bien.
>
> J'ai compulsé l'aide en ligne, sans toutefois tout comprendre (je ne
> manipule jamais ce type de données d'habitude). Je sais toutefois que les
> images en question sont stockées dans une seule ligne (apparemment cela a
> une
> importance).
>
> Quelqu'un peut-il m'expliquer cette énigme, ou la marche à suivre ? J'ai
> tenté de passer par des variables, mais sans succès .
>
> PS : Je sais que le stockage d'image dans une BDD plutôt qu'un référentiel
> fichier est sujet à controverse, mais je ne peux pas me permettre
> d'altérer
> la structure de la table, et la base est en cours d'exploitation.
>
> Merci et bonne journée.
>
>