Failed para ativar restrições. Uma ou mais linhas contêm valores que violam restrições não nulas, exclusivas ou de chave estrangeira

Fiz uma junção externa e executada com sucesso noinformix database, mas recebo a seguinte exceção no meu código:

DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);

Failed para ativar restrições. Uma ou mais linhas contêm valores que violam restrições não nulas, exclusivas ou de chave estrangeir

Conheço o problema, mas não sei como corrigi-lo.

A segunda tabela na qual faço a junção externa contém uma chave primária composta que é nula na consulta de junção externa anterio

EDITAR

    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 = ....

O problema acontece com a tabelacc1assiscrseval. A chave primária é (batch_no, crsnum, lect_code).

Como consertar esse problema

EDITAR

De acordo com@PaulStock conselhos: faço o que ele disse e recebo:

? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "A coluna 'eval' não permite DBNull.Value."

Então eu resolvo meu problema substituindoe.eval para NVL (e.eval,'') eval .e isso resolve meu problema. Muito obrigado

questionAnswers(22)

yourAnswerToTheQuestion