programing

ORA-02014 해결 방법: DISTINCT, GROUP BY로 보기에서 FOR UPDATE를 선택할 수 없습니다.

bestprogram 2023. 8. 10. 19:00

ORA-02014 해결 방법: DISTINCT, GROUP BY로 보기에서 FOR UPDATE를 선택할 수 없습니다.

다음 쿼리를 사용하여 레코드 그룹을 잠급니다.

select *
  from (select *
          from event_table
         where status = 'S'
        order by creation_data asc
       )
 where rownum <=10
for update;

event_table은 뷰가 아닙니다.이것은 일반 테이블입니다.

create table event_table
(
 id            number, 
 creation_date date, 
 status        number, 
 info          clob
);

기본 키는 필드 ID입니다.

사용할 수 있습니까?rownum와 함께select for update전혀?

다음을 사용하는 다른 솔루션이 있습니까?select for update선택한 결과가 아닌 행 그룹만 선택할 수도 있습니다.

예를 들어 내부 X마다 실행되는 태스크가 있으며 사용해야 합니다.select for update해당 테이블의 경우, 하지만 선택 항목이 500개의 행을 반환하는 경우, 저는 매번 100개의 행을 처리하기를 원합니다(페이지 종류).그래서 노력한 것입니다.rownum그것 때문에

감사해요.

작동합니까?:

select * from event_table where id in 
(
    SELECT id
    FROM (SELECT *
        FROM event_table
        WHERE status = 'S'
        ORDER BY CREATION_DATA ASC)
        WHERE ROWNUM <=10
)
FOR UPDATE;

언급URL : https://stackoverflow.com/questions/5873051/how-to-solve-ora-02014-cannot-select-for-update-from-view-with-distinct-group