Bonjour,
Je travaille sur une base de données Oracle 7.3 avec SQLPLUS33, je veux récupérer les données d'une colonne B de la table T2 pour mettre à jour la colonne B de la table T1. J'ai une relation (1,n) .
1 code_affect peut avoir 1 ou plusieurs code_dep et 1 code_dep peut être affecté à 1 ou plusieurs code_affect
Voici les champs des 2 tables :
T1 (code_affect primary key varchar2 (6) not null,
code_dep varchar2 (10) )
T2 (code_affect foreign key varchar2 (6) not null,
code_dep varchar2 (10) not null)
Je veux renseigner, mettre à jour la colonne code_dep de T1 à partir des données de T2 à chaque fois que je rencontre le code_affect de T2 = au code_affect de T1 et que le code_dep de T1 n'est pas renseigné, je récupére le code_dep de T2 pour mettre à jour la colonne code_dep de T1.
J'ai fait cette reqête suivante :
UPDATE T1
SET T1.Code_dep =(select T2.code_dep from T2
WHERE T1.code_affect=T2.code_affect
and T1.code_dep is NULL);
Lorsque j'exécute la requête, j'ai une erreur ORA at line 2 :
Error at line 2:
ORA-01427 : single-row subquery returns more than one row.
Je ne comprends pas cette erreur pourquoi SQL dit que un single -row de la sous-requête ramène plusieurs enregistrements.
Quelqu'un peut me corriger cette requête et m'expliquer pourquoi ?
Merci de votre aide.
Partager