Oracle에서 rowid는 테이블의 행을 고유하게 표시하는 유사 열입니다. 구문은 "rowid..."입니다. 물리적인 테이블 행 데이터의 내부 주소입니다. 그 중 하나는 데이터 테이블의 행을 포함하는 블록에 저장된 데이터 파일의 주소를 가리키고, 다른 하나는 데이터 블록에서 이 행의 주소를 가리킵니다. 데이터 행 자체를 직접 찾을 수 있습니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.
rowid는 테이블의 행을 고유하게 표시하는 데 사용되는 유사 열입니다. 물리적 테이블에 있는 행 데이터의 내부 주소입니다. 하나는 데이터 테이블의 행이 포함된 블록에 저장된 데이터 파일의 주소이고, 다른 하나는 해당 행을 직접 찾을 수 있는 행입니다. 의 데이터 블록 주소에 있는 데이터 행 자체입니다.
Oracle 데이터베이스 테이블의 각 데이터 행에는 일반적으로 Oracle 내에서 데이터에 액세스하는 데 사용되는 고유 식별자 또는 rowid가 있습니다. rowid는 10바이트의 저장 공간이 필요하며 표시하는 데 18자를 사용합니다. 이 값은 Oracle 데이터베이스에 있는 행의 특정 물리적 위치를 나타냅니다. 쿼리에서 rowid를 사용하여 해당 값이 쿼리 결과에 포함되어 있음을 나타낼 수 있습니다.
AAAR1yAAHAAAAFkAAA 예를 들어
여기서 AAAR1y는 데이터베이스 개체 번호, AAH는 파일 레이블, AAAAFk는 블록 번호, 마지막 세 자리 AAA는 행 번호입니다.
DEPT에서 select *를 사용하세요. 이 열은 데이터베이스 내부에서만 사용되며 일반적으로 rowid를 의사 열이라고 부르기 때문에 출력 결과에서 rowid 열을 볼 수 없습니다.
scott.emp의 데이터를 선택한 후 수동으로 수정하려면
select rowid,t.* from scott.emp t;
select * from emp;
로 직접 작성하는 대신
select rowid,t.* from scott.emp t; select * from scott.emp for update;
를 사용해야 합니다. ROWID를 사용하여 ORACLE에서 레코드를 찾는 것이 가장 빠릅니다. 인덱싱보다 빠르므로 먼저 SELECT ROWID를 사용하여 업데이트할 행을 선택하고 COLLECTION에 넣은 다음 FORALL UPDATE를 사용하여 일괄 업데이트하면 속도가 향상될 수 있습니다. 이러한 관점에서 다른 방법보다 낫습니다
SELECT FOR UPDATE는 데이터 일관성을 요구하고 데이터를 필터링할 때 다른 사람이 변경하는 것을 허용하지 않는 등 복잡한 병렬 쿼리 업데이트 프로그램에 필요한 업데이트 전에 레코드를 잠급니다. FOR UPDATE 또는 SET TRANSACTION READ ONLY를 사용하여 잠깁니다. 또한 CURSOR의 WHERE CURRENT OF CURSOR 문에서는 FOR UPDATE를 SELECT에 추가해야 합니다.
권장 튜토리얼: "Oracle Video Tutorial"
위 내용은 오라클에서 rowid를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!