외부 조인을 만들어 informix
데이터베이스 에서 성공적으로 실행 했지만 내 코드에서 다음 예외가 발생합니다.
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
제약 조건을 활성화하지 못했습니다. 하나 이상의 행에 null이 아니거나 고유하거나 외래 키 제약 조건을 위반하는 값이 있습니다.
문제를 알고 있지만 해결 방법을 모르겠습니다.
외부 조인을 수행하는 두 번째 테이블에는 이전 외부 조인 쿼리에서 null 인 복합 기본 키가 포함되어 있습니다.
편집하다:
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 = ....
테이블에서 문제가 발생합니다 cc1assiscrseval
. 기본 키는 (batch_no, crsnum, lect_code)입니다.
이 문제를 해결하는 방법?
편집하다:
@PaulStock
조언 에 따르면 : 나는 그가 말한 것을하고, 나는 얻는다 :
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors : true ItemArray : {object [10]} RowError : "열 'eval'은 DBNull.Value를 허용하지 않습니다."
으로 교체 e.eval
하여 문제를 NVL (e.eval,'') eval
해결하면 문제가 해결됩니다. 고마워
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
쿼리에서 제거하면 모든 것이 정상적으로 진행됩니다. 문제가 무엇입니까?