eocn 님이 쓰신 글 :
: 인터베이스에서는 RDB$DB_KEY가 다른 DB의 rowid와 같이 쓰인다는걸 어디서 보았는데요..
: 다음과 같이 RDB$DB_KEY를 select 하니......
:
: select p.*, RDB$DB_KEY from certificate p;
:
: 값이 0000008300000001 이렇게 나왔습니다.
: 그리하여 RDB$DB_KEY가 0000008300000001인 값을 select 하려고 다음과 같이 하니.. 값이 안나오는데..
:
: select p.*, RDB$DB_KEY from certificate p where p.RDB$DB_KEY = '0000008300000001';
:
: 제가 뭘 잘못한거죠~ 에러는 나지 않구.. 결과가 null로 나옵니다..
: 어떻게 해야 RDB$DB_KEY로 select를 할수 있는지.. 방법 아시는분 답변 꼬옥 부탁드립니다...
: 참고로... 지금 interbase6.0버전을 사용하고 있습니다.
:
:
:
:
안녕하세요 Tk 입니다.
rdb$db_key 값들은 '0000008300000001' 처럼 보이지만.
실제 rdb $db_key "<" ">" 해서 보시면. 확인할수 있쬬
그럼 비교하는 방법은 char(8) 비교하시면. 됨다.
example)
CREATE TABLE ZIP (
ZIPCODE VARCHAR(7),
SIDO VARCHAR(4),
GUGUN VARCHAR(13),
DONG VARCHAR(43),
BUNJI VARCHAR(17)
)
CREATE PROCEDURE PROC_TK_DBKEY1 (
INPT CHAR(7)
) RETURNS (
RTN VARCHAR(120)
) AS
declare variable tk_key char(8); // 여기 char(8) 선언 하시고요.
begin
select zip.rdb$db_key from zip where zipcode = :inpt // 사용자가 입력한 rdb$db_key값을 찾아서 먼저 변수(char(8)) 에다가 넣구요..
into :tk_key;
select gugun||dong from zip where zip.rdb$db_key = :tk_key; //여기서 여기서 비교됨
into :rtn;
suspend;
end
위예제는 실용성 없는 프로시저지만.. row id 이렇게 비교 한다구욤 ^^; 휘~
담주 화욜날 동원훈련 ㅡ/.ㅡ 강원도루 감다.
|