begin process at 2010 02 10 06:39:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Oracle

 > 

Requêtes

 > 

UPDATE à partir d'un SELECT (Oracle)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

UPDATE à partir d'un SELECT (Oracle)

jeudi 11 juin 2009 à 16:36:11 | UPDATE à partir d'un SELECT (Oracle)

Polack77

Bonjour,

J'ai une grosse table à mettre à jours donc je voudrais évité l'opérateur IN (si possible)
J'ai deux table. Les deux contienne les même clef.
Je voudrais mettre à jours une de mes table (passé une colonne à 'V') si l'ID est présent dans la seconde table (à NULL ou autre si non). (Rien de très compliqué en somme)
Sauf que la requete que j'exécute semble tourné en boucle ! (plus de 5 heures d'exécutions sans résultat !!! alors que ma TABLE1 contiens environ 100 000 lignes, ce qui ne me parais pas énorme mais je me trompe peut être vue que j'ai l'abitude de manipulé de TRES grosses tables)
La requete que j'exécute :

update TABLE1 set ("COLONNE3") = (
SELECT
'V' as "COLONNE3"
FROM
TABLE2
WHERE
TABLE1.ID1 = TABLE2.ID1
AND
TABLE1.ID2 = TABLE2.ID2)

Ce que je veut évité (car ma table 2 contienne plus de 1 000 000 000 de ligne) :
update TABLE1 set ("COLONNE3") = ('V')
WHERE
(TABLE1.ID1,TABLE1.ID2) IN (SELECT ID1,ID2 FROM TABLE2)

HELP SVP

 Amicalement
Google écolo : Forestle
samedi 20 juin 2009 à 12:45:16 | Re : UPDATE à partir d'un SELECT (Oracle)

EricSQL

Réponse acceptée !
Bonjour, quand tu as beaucoup d'enregistrements à mettre à jour, le mieux est de passer par une table temporaire et d'éviter ainsi un UPDATE très gourmand en ressource. Create table Nouvelle_Table1 as Select T1.ID1 , T1.ID2 , Case when T2.ID1 is NULL then NULL else 'V' end as Colonne3 , T1.Toutes_tes_autres_colonnes from Table1 T1 left outer join Table2 T2 on T1.ID1 = T2.ID1 and T1.ID2 = T2.ID2 ;

/Eric
lundi 22 juin 2009 à 09:36:22 | Re : UPDATE à partir d'un SELECT (Oracle)

Polack77

Oui j'ai fini par faire un truc du genre
Merci de t'intéresser à mon problème
(Quoi qu'il en soit, merci pour la requête que tu à posté. Je n'avais plus en tête que le ternaire (Case when TEST then 'Valeur quand vrais' else 'Valeur quand faux' end as "Nom colonne de retour") existais en SQL.
Sa vas me faire gagné du temps pour d'autre requête (je suis à font dedans en ce moment, même si ce n'est pas mon domaine de prédilection)
Bonne continuation

 Amicalement
Google écolo : Forestle
lundi 22 juin 2009 à 20:32:41 | Re : UPDATE à partir d'un SELECT (Oracle)

EricSQL

De rien.
Bon courage pour la suite.

/Eric


Cette discussion est classée dans : table, select, update, table1, id2


Répondre à ce message

Sujets en rapport avec ce message

requête update avec select [ par bies ] Bonjour!!! besoin d'aide car çà fait des heures que je suis sur cette requête Au départ, j'ai ma table1 dont un extrait ci dessous. dans cette table, SELECT sur table envoyée par url [ par Annadrill ] bonjour,je cherche a faire un truc pas bien compliqué mais je trouve aucune solution, seulement avec des messages d'erreur XDjai plusieurs liens surun Insert into [matable] values (ma variable, Select...) c'est possible?? [ par yanis7518 ] Salut à tous, Je voudrais faire une procédure stockée qui fait des insertions d'une table vers une autre. Dans ma nouvelle table j'ai un Guid que je [update] mise à jour d'une table [ par tremiesoj ] bonjour,je suis sur un programme de gestion de bdd simplifié pour utilisateur non-infomaticien (bref rien de bien compliqué jusque là).petit soucis de insert into/select [ par boubou2412 ] salut tout le monde,je suis certaine qu'il ya une faute dans ma requete j'aimerais bien savoir comment la corriger, bon j'ai un table X qui contient p SELECT multitable [ par bergasol ] Bonjour, comment faire pour selectionner une donnée dans une de mes table qui s'en refere a une autre.    Ma premiere table "facture" contient une don recherche dans une table [ par mladenski ] Bonjour. J'ai le problème suivant:J'ai deux tables. La première a bcp de champs (c'est une liste d'expéditions) dont un qui m'intéresse, LE POIDS. La Requête select une ligne sur deux [ par Mayzz ] Bonjour à tous,Voila, je fais un site en ASP.NET et j'ai une requête spécifique à faire.Je souhaiterai faire une requête select dans un dataset (Table Update dans select [ par olibara ] BonjourJ'aimerais savoir s'il est possible de faire un UPDATE en utilisant une commande selectUn truc du genre :[CODE]UPDATEaddressset Address.isEtiqu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales