外部結合を作成し、informix
データベースで正常に実行しましたが、コードで次の例外が発生します。
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
制約を有効にできませんでした。1つ以上の行に、null以外、一意、または外部キーの制約に違反する値が含まれています。
私は問題を知っていますが、それを修正する方法がわかりません。
私が外部結合を行う2番目のテーブルには、前の外部結合クエリでは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
クエリから削除すると、すべてがうまくいきます。問題は何ですか。