Faccio un join esterno ed eseguo correttamente nel informixdatabase ma ottengo la seguente eccezione nel mio codice:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
Impossibile abilitare i vincoli. Una o più righe contengono valori che violano vincoli non nulli, univoci o con chiave esterna.
Conosco il problema, ma non so come risolverlo.
La seconda tabella su cui eseguo il join esterno contiene una chiave primaria composita che sono nulli nella precedente query di join esterno.
MODIFICARE:
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 = ....
Il problema si verifica con la tabella cc1assiscrseval. La chiave primaria è (batch_no, crsnum, lect_code).
Come risolvere questo problema?
MODIFICARE:
Secondo i @PaulStockconsigli: faccio quello che ha detto e ottengo:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "La colonna 'eval' non consente DBNull.Value."
Quindi risolvo il mio problema sostituendo e.evala NVL (e.eval,'') eval.e questo risolve il mio problema. Molte grazie.





,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_coursedalla query ogni cosa va bene. qual è il problema per favore.