ORA-02287: 시퀀스 번호는 여기에서 허용되지 않습니다.
저는 두 표에서 값을 선택하여 한 표에 삽입하고 연간 총 배치 수를 계산하려고 합니다.여기서 시퀀스가 허용되지 않는다는 오류가 계속 발생합니다.
DROP table placement_cal CASCADE CONSTRAINTS;
CREATE TABLE placement_cal(
cal_id INTEGER NOT NULL,
year INTEGER,
no_of_placements INTEGER,
CONSTRAINT pk_cal_dim PRIMARY KEY (cal_id)
);
INSERT INTO placement_cal (
SELECT cal_id.nextval , EXTRACT(YEAR FROM start_date) , count(placement_id)
FROM placement
group by year);
INSERT INTO placement_cal (
SELECT cal_id.nextval , EXTRACT(YEAR FROM start_date) , count(placement_id)
FROM placement_two
group by year);
이유는 FAQ에서 확인할 수 있습니다.
다음은 시퀀스를 사용할 수 없는 경우입니다.
SELECT 문의 경우:
- WHERE 절에서
- GROUP BY 또는 ORDER BY 절에서
- DISTINCT 절에서
- 유니온 또는 교차 또는 마이너스와 함께
- 하위 쿼리에서
이 쿼리는 예외를 발생시킵니다.
SELECT cal_id.nextval , EXTRACT(YEAR FROM start_date) , count(placement_id)
FROM placement
group by year;
이는 다음을 사용하는 쿼리에서 시퀀스 값을 선택할 수 없기 때문입니다.group by절
또한, a.group by절은 다음의 모든 비순서적 표현식을 포함해야 합니다.select당신의 조항은 그렇지 않습니다.내 생각이 듭니다year의 별칭입니다.EXTRACT(YEAR FROM start_date)이 경우 필요한 쿼리입니다.
INSERT INTO placement_cal
SELECT cal_id.nextval, year, cnt FROM
( SELECT EXTRACT(YEAR FROM start_date) year, count(placement_id) cnt
FROM placement
group by EXTRACT(YEAR FROM start_date)
);
여기서 실제 해결책을 보지 못한 것이 놀랍습니다.CTE를 사용하는 것은 해결해야 할 문제입니다.다음과 같은 방법이 사용될 것입니다.
INSERT INTO placement_cal (
WITH tempPlacement AS (
SELECT EXTRACT(YEAR FROM start_date) year, count(placement_id) cnt
FROM placement
group by EXTRACT(YEAR FROM start_date)
) SELECT cal_id.nextval, year, cnt FROM tempPlacement
);
한 테이블에 데이터를 삽입할 때마다 다른 테이블의 데이터를 가져오는 절별 순서를 사용하여 시퀀스 번호 not allowed Error를 방지하지 마십시오.
이렇게 하세요. 이렇게 시퀀스를 사용할 수 있습니다. 파트별 그룹의 경우, 배치 그룹의 연도별로 @Tony INSERT INTER TO placement_cal(cal_id.nextval, EXtract(YE FROM start_date), 카운트(placement_id)의 다른 답변을 따를 것을 권장합니다.
INSERT INTO placement_cal (
cal_id.nextval , EXTRACT(YEAR FROM start_date) , count(placement_id)
FROM placement_two
group by year);
언급URL : https://stackoverflow.com/questions/34546009/ora-02287-sequence-number-not-allowed-here
'programing' 카테고리의 다른 글
| 파이썬 유닛 테스트를 위해 mongodb를 조롱하는 방법은 무엇입니까? (0) | 2023.07.10 |
|---|---|
| Oracle Database에서 SQL을 사용하여 XML Clob에서 데이터 추출 (0) | 2023.07.10 |
| 스프링 부츠 & JPA:선택적이고 범위가 넓은 기준으로 검색 쿼리 구현 (0) | 2023.07.10 |
| 실행력을 높이는 다음과 같습니다.장시간 실행되는 쿼리의 시간 초과? (0) | 2023.07.10 |
| Mongodb: 처음 연결할 때 서버에 연결하지 못했습니다. (0) | 2023.05.11 |