暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何通过链排获得rowid

askTom 2017-07-12
232

问题描述

嗨,汤姆,
我创建了一个表格,就像这样
创建表pan0.t (c1 int,c2 varchar2(4000),c3 varchar2(4000),c4 varchar2(4000));

然后,插入数据以生成链行
插入pan0.t值 (7,rpad(''',4000,'''),rpad('!',4000,'!'),rpad('@',4000,'@'));
提交;

从pan0.t中选择rowid,其中c1 = 7;
AALYZmAAaAAAAq4AAA

ROWID的链接关系是
AALYZmAAaAAAAq4AAA ==> AALYZmAAaAAAAq0AAA

oracle中是否有实现此功能的函数或过程?
有趣的是,返回!!

不管链接关系是a =>b =>c =>d还是a =>b,
乐趣 (c) 返回a
乐趣 (b) 返回a
a是rowid。

专家解答

我不知道你在问什么。链式行的rowid保持不变:

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
复制


如果你问你如何得到的物理位置 (“rowid”) 的链的部分的行,我不知道一个SQL函数,将为你做到这一点。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论