Realizo una unión externa y la ejecuté con éxito en la informix
base de datos, pero obtengo la siguiente excepción en mi código:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
Error al habilitar restricciones. Una o más filas contienen valores que violan restricciones no nulas, únicas o de clave externa.
Conozco el problema, pero no sé cómo solucionarlo.
La segunda tabla en la que hago la unión externa contiene una clave primaria compuesta que es nula en la consulta de unión externa anterior.
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 = ....
El problema ocurre con la mesa cc1assiscrseval
. La clave principal es (batch_no, crsnum, lect_code).
¿Cómo arreglar este problema?
EDITAR:
De acuerdo con el @PaulStock
consejo: hago lo que dijo, y obtengo:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "La columna 'eval' no permite DBNull.Value".
Así que resuelvo mi problema reemplazando e.eval
a., NVL (e.eval,'') eval
Y esto resuelve mi problema. Muchas gracias.
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
la consulta, todo sale bien. cual es el problema por favor