Bonjour,

Je dois restaurer une table à partir d'une sauvegarde, mais ma requête n'est pas franchement optimisée,
je crois qu'elle le fait sur toute la table

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Id_question | id_codeuai | reponse_N | reponse_N1 ....
1                 25001          10             11
2                 25001          11             0
3                 27002          12             3
la clef primaire est basée sur id_question et id_codeuai.

J'ai fais la requête suivante

REPONSES est la tables d'origine et REPONSES_SAUV la sauvegarde.
Je voudrais simplement mettre à jour la question dont l(ID est 56 par exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
MERGE INTO REPONSES U1
USING (SELECT * FROM REPONSES_SAUV) U2
ON (U1.ID_QUESTION = U2.ID_QUESTION AND U1.CODE_UAI = U1.CODE_UAI)
WHEN MATCHED THEN UPDATE SET U1.REPONSE_N = U2.REPONSE_N, U1.REPONSE_N1 = U2.REPONSE_N1, U1.REPONSE_N2 = U2.REPONSE_N2 , U1.REPONSE_N3 = U2.REPONSE_N3;
Mais je ne sais pas ou mettre la clause WHERE car si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
MERGE INTO REPONSES U1
USING (SELECT * FROM REPONSES_SAUV WHERE ID_QUESTION=56) U2
ON (U1.ID_QUESTION = U2.ID_QUESTION AND U1.CODE_UAI = U1.CODE_UAI)
WHEN  MATCHED THEN UPDATE SET U1.REPONSE_N = U2.REPONSE_N, U1.REPONSE_N1 =  U2.REPONSE_N1, U1.REPONSE_N2 = U2.REPONSE_N2 , U1.REPONSE_N3 =  U2.REPONSE_N3;
J'ai la réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ORA-30926 : Impossible d'obtenir un ensemble de lignes stables dans les tables sources ....
Si vous avez une idée ... j'y retourne