Mise à jour BDD

Mise à jour BDD - SQL/NoSQL - Programmation

Marsh Posté le 27-03-2008 à 18:50:18    

Bonjour.
 
Je possède une BDD qui contient des enregistrements plus ou moins enrichis.
Ensuite je possède une fonction importer qui parse un fichier XML et qui va update ma BDD.
 
Cependant certains champs parsé dans mon XML peuvent être vides alors que dans ma BDD ils sont peux être déjà renseigné.
 
Comment faire un update que de mes champs qui n'ont pas encore été renseignés dans ma BDD?
 
Merci

Reply

Marsh Posté le 27-03-2008 à 18:50:18   

Reply

Marsh Posté le 28-03-2008 à 02:15:48    

update à chaque fois, ou aussi insert ?
 
selon ton sgbd, avec des decode()/nvl() ou isnull()/switch tu devrais pouvoir t'en sortir si tu ne fais que des update
 
mais si tu dois gérer les deux, à mon avis le plus simple c'est de faire un trigger

Reply

Marsh Posté le 28-03-2008 à 09:44:40    

En faisant ceci

Code :
  1. UPDATE MaTable
  2. SET Macolonne1 = COALESCE(MaColonne1, MaValeur1),
  3.     Macolonne2 = COALESCE(MaColonne2, MaValeur2),
  4.     Macolonne3 = COALESCE(MaColonne3, MaValeur3),
  5. ...

ca update mon champs si il vaut NULL.
 
Cependant quand MaValeur1 vaut '' ca me remplace NULL par du vide et du coup le COALESCE ne marche plus.
 
Des idées?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed