나는 미래의 날짜에 날짜를 허용하지 않는 제약 조건을 만들려고합니다. 나는 이것을 가지고있다 :미래의 날짜 SQL 개발자
ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento
CHECK (FechaNacimiento<=current_date);
그러나 나는 error 02436
을 얻고있다.
나는 미래의 날짜에 날짜를 허용하지 않는 제약 조건을 만들려고합니다. 나는 이것을 가지고있다 :미래의 날짜 SQL 개발자
ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento
CHECK (FechaNacimiento<=current_date);
그러나 나는 error 02436
을 얻고있다.
비 결정적 제약 조건을 만들 수 없습니다. 따라서 호출 할 때마다 다른 값을 반환하는 current_date
또는 sysdate
과 같은 함수를 참조하는 제약 조건을 만들 수 없습니다. 당신이 이런 종류의 물건을 적용하려면
, 내가 다시 시도했던 즉
CREATE OR REPLACE TRIGGER trg_paciente
BEFORE INSERT OR UPDATE
ON paciente
FOR EACH ROW
BEGIN
IF(:new.FechaNacimiento > current_date)
THEN
RAISE_APPLICATION_ERROR(-20001, 'FechaNacimiento<=current_date must be in the past');
END IF;
END;
ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento CHECK (FechaNacimiento<=SYSDATE);
, 비즈니스 규칙을 위반 한 경우 오류가 발생합니다 테이블에 트리거를 만들 필요 했어 이것과는, 그런데 덕분에 오류를 표시하지 않았다
ALTER TABLE EXAMENPACIENTE CONSTRAINT ExamenPaciente_FechaExamen_c1 CHECK (FechaExamen < = '30 -SEP-2013 ') ADD;
'CURRENT_DATE '로 얻을 수있는'SYSDATE' 함수를 사용하면 똑같은 오류가 발생합니다. 둘 다 비 결정적이며 비 결정적 함수는 제약 조건에서 허용되지 않습니다. –