0
테이블 (wishlist_table)을 쿼리하여 멤버가 표시되는 횟수를 확인하려고합니다.Oracle check constraint, call function
구현하려는 비즈니스 규칙은 회원이 한 번에 최대 5 개의 항목을 가질 수 있다는 것입니다.
나는 membersId가 위시리스트 테이블에 표시 얼마나 많은 시간을 확인하는 함수를 만들었습니다 그래서 도메인 제약 조건으로이 일을 말씀 드리 지요하지만 내 점검 제한 조건에서를 호출 할 때 오류가 발생합니다
CREATE TABLE WishlistTest
(
WishlistId NUMERIC(6) NOT NULL PRIMARY KEY,
CONSTRAINT chk_Wishlist CHECK (sw3.wishListUpToFiveItems() >= 0 AND sw3.wishListUpToFiveItems() < 5)
);
CREATE OR REPLACE FUNCTION functionWishListUpToFiveItems
RETURN number IS
total number(1) := 0;
BEGIN
SELECT count(*) into total
FROM Member
WHERE MemberId = 1;
IF total < 5 THEN
return total;
ELSE RETURN -1;
END IF;
END;
누군가가 나에게 이것에 대해가는 더 나은 방법을 말해 아니면 내가 잘못하고있는 무슨을 볼 수있는 경우가
일반적으로 오류가 발생하는 경우 오류를 게시하십시오. 그렇지 않으면, 우리는 추측해야하고 우리는 잘못 추측 할 수 있습니다. 이것을 누가 제약 조건으로 이행하라고 했습니까? 숙제 나 감독관의 요청입니까? 오라클의 'CHECK' 제약 조건에서 함수를 호출 할 수 없으므로 전체 접근법이 잘못되어 제약 조건 "요구 사항"의 출처를 파악하는 것이 유용합니다. –
이것은 대학 과제입니다. 검사 제약 조건에서 함수를 호출 할 수 없다면 다른 방법으로 가야합니다. 그는 도메인 제약 조건으로 누군가가 나에게 어떻게해야하는지 가르쳐 줄 수 있다고 말했다. 나는 그 코드에 대해 갈 길이 멀다. 고맙다. –