Je crée une jointure externe et je l'exécute avec succès dans la informix
base de données mais j'obtiens l'exception suivante dans mon code:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
Échec de l'activation des contraintes. Une ou plusieurs lignes contiennent des valeurs violant des contraintes de clé non nulle, unique ou étrangère.
Je connais le problème, mais je ne sais pas comment le résoudre.
La deuxième table sur laquelle je crée la jointure externe contient une clé primaire composite qui est nulle dans la requête de jointure externe précédente.
ÉDITER:
SELECT UNIQUE a.crs_e, a.crs_e || '/ ' || a.crst crs_name, b.period,
b.crscls, c.crsday, c.from_lect, c.to_lect,
c.to_lect - c.from_lect + 1 Subtraction, c.lect_kind, e.eval, e.batch_no,
e.crsnum, e.lect_code, e.prof_course
FROM rlm1course a, rfc14crsgrp b, ckj1table c, mnltablelectev d,
OUTER(cc1assiscrseval e)
WHERE a.crsnum = b.crsnum
AND b.crsnum = c.crsnum
AND b.crscls = c.crscls
AND b.batch_no = c.batch_no
AND c.serial_key = d.serial_key
AND c.crsnum = e.crsnum
AND c.batch_no = e.batch_no
AND d.lect_code= e.lect_code
AND d.lect_code = ....
AND b.batch_no = ....
Le problème se produit avec la table cc1assiscrseval
. La clé primaire est (batch_no, crsnum, lect_code).
Comment résoudre ce problème?
ÉDITER:
Selon les @PaulStock
conseils: je fais ce qu'il a dit et j'obtiens:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "La colonne 'eval' n'autorise pas DBNull.Value."
Je résous donc mon problème en remplaçant par e.eval
, NVL (e.eval,'') eval
et cela résout mon problème. Merci beaucoup.
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
la requête, tout va bien. quel est le problème s'il vous plaît.