반응형
데이터베이스 커서가 기본 데이터에 대한 변경 사항을 픽업합니까?
커서에 대한 빠른 질문(특히 Oracle 커서)
예를 들어, "my_table"이라는 테이블에 두 개의 열, 즉 ID와 이름이 있습니다.수백만 개의 행이 있지만 이름 열은 항상 'test' 문자열입니다.
그런 다음 다음 PL/SQL 스크립트를 실행합니다.
declare
cursor cur is
select t.id, t.name
from my_table t
order by 1;
begin
for cur_row in cur loop
if (cur_row.name = 'test') then
dbms_output.put_line('everything is fine!');
else
dbms_output.put_line('error error error!!!!!');
exit;
end if;
end loop;
end;
/
실행 중인 경우 다음 SQL을 실행합니다.
update my_table
set name = 'error'
where id = <max id>;
commit;
PL/SQL 블록의 커서가 변경 사항을 선택하여 "오류 오류"를 출력하고 종료합니까?아니면 전혀 변화를 얻지 못할까요?아니면 my_table로 업데이트할 수 있을까요?
감사합니다!
커서는 SELECT를 효과적으로 실행한 다음 DB 상태의 스냅샷에 저장된 결과 집합을 반복할 수 있습니다.결과 집합을 이미 가져왔으므로 UPDATE 문의 영향을 받지 않습니다. 그렇지 않은 경우에는 커서를 이동할 때마다 쿼리를 다시 실행해야 합니다.
참조:
http://www.techonthenet.com/oracle/cursors/declare.php
언급URL : https://stackoverflow.com/questions/1690822/do-database-cursors-pick-up-changes-to-the-underlying-data
반응형
'programing' 카테고리의 다른 글
| dotnet mvc 응용 프로그램의 Oracle 데이터베이스에 연결 (0) | 2023.08.28 |
|---|---|
| 파이썬, Enum 유형은 무엇에 유용합니까? (0) | 2023.08.28 |
| Mysql 목록 표 및 크기 - 크기순 정렬 (0) | 2023.08.28 |
| VBA에서 ADODB 레코드 세트 전체 복사 또는 복제 (0) | 2023.08.09 |
| Python 모듈 "cx_Oracle" 모듈을 찾을 수 없습니다. (0) | 2023.08.08 |