Skip to Main Content

Breadcrumb

May 4th

Question and Answer

Chris Saxon

Thanks for the question, pan.

Asked: July 12, 2017 - 6:46 am UTC

Last updated: July 14, 2017 - 9:16 am UTC

Version: 10.2.0.1.0

Viewed 1000+ times

You Asked

Hi Tom,
I create a table, like this
create table pan0.t (c1 int, c2 varchar2(4000), c3 varchar2(4000), c4 varchar2(4000));

and then, insert data to generate a chain row
insert into pan0.t values(7, rpad('`',4000,'`'), rpad('!',4000,'!'), rpad('@',4000,'@'));
commit;

select rowid from pan0.t where c1 = 7;
AALYZmAAaAAAAq4AAA

The link relationship for ROWID is
AALYZmAAaAAAAq4AAA ==> AALYZmAAaAAAAq0AAA

Is there a function or process in oracle that implements this function?
fun(AALYZmAAaAAAAq0AAA) return AALYZmAAaAAAAq4AAA !!

Regardless of the link relationship is a=>b=>c=>d or a=>b,
fun(c) return a
fun(b) return a
a is rowid.

and Chris said...

I'm not sure what you're asking here. The rowid of a chained row remains the same:

create table t (c1 int, c2 varchar2(4000), c3 varchar2(4000), c4 varchar2(4000));
insert into t values (1, null, null, null);
commit;

select c1, rowid from t;

        C1 ROWID             
---------- ------------------
         1 AAAcd+AABAAAS3oAAA

update t
set    c2 = rpad('`',4000,'`'), c3 = rpad('!',4000,'!'), c4 = rpad('@',4000,'@');
select c1, rowid from t;

        C1 ROWID             
---------- ------------------
         1 AAAcd+AABAAAS3oAAA


If you're asking how you get the physical location ("rowid") of the chained sections of the row, I'm not aware of a SQL function that will do this for you.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

pan, July 16, 2017 - 11:48 am UTC