문제

내가 진행되는 데이터베이스 내가를 수행하 ETL 습니다.테이블 중 하나는 나에서 읽지 않는 고유 키에 그것은,그래서 접근할 필요가 ROWID 수를 고유하게 식별하다.는 무엇입문에 액세스하기 위한 ROWID 진행 중입니까?

내가 이해하는 문제가 있으로 사용하 ROWID 행 식별이지만,그것은 모두가 지금이다.

도움이 되었습니까?

해결책

빠른주의에 대한 나의 답변-그것은 거의 10 년이와 함께 일 진행 그래서 나는 지식은 아마 보다 더 작은이다.

검사 진 언어 참조 [PDF]는 것을 보면 두 가지 기능을 내가 기억하는 아직 거기: ROWIDRECID.이 ROWID 기능은 새로운 바람직하다.

에서 진행 4GL 다음을 사용할 수 있습니다 그것은 무언가 이것을 좋아한다:

FIND customer WHERE cust-num = 123.
crowid = ROWID(customer).

또:

FIND customer WHERE ROWID(customer) = crowid EXCLUSIVE-LOCK.

검사 진행 SQL 참조 [PDF]보여줍 ROWID 에서도 사용할 수 있는 SQL 로 진행 extension.다음을 사용할 수 있습니다 그것은 그래서 다음과 같:

SELECT ROWID, FirstName, LastName FROM customer WHERE cust-num = 123

편집: 편집의 다음 스테판의 피드백입니다.

다른 팁

상황에 따라과 응용 프로그램의 동작이거나 문제가되지 않을 수 있습니다 하지만 당신이 알고 있어야 하는 ROWIDs&RECIDs 은 재사용하고 있는 그들은 변경될 수 있습니다.

1)면 기록은 삭제하는것은 ROWID 은 결국 다시 사용할 수 있습니다.

2)의 경우 테이블이 개편을 통해 덤프&드 또는 tablemove 새로운 저장소 지역에서 다음 ROWIDs 변경됩니다.

그냥 조금 추가하기 위해 데이브 웹의 답변이 있습니다.려고 했던 ROWID 에서 선택 문이었지만 주어진 구문 오류가 있습니다.ROWID 만 작품을 지정하는 경우 나머지는 열을 선택 사용할 수 없습니다*.

이 작동하지 않습니다.

SELECT ROWID, * FROM customer WHERE cust-num = 123

이동:

SELECT ROWID, FirstName, LastName FROM customer WHERE cust-num = 123

빠른 google 검색로 this:http://bytes.com/forum/thread174440.html

메시지를 읽으로 바닥에 의해 greg@turnstep.com (당신이 원하는 어느 oid 또는 ctid 에 따라 보장을 원하시는 지속성과 독창성)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top