ROWID:

ROWID为该表行的唯一标识,是一个伪列,这个伪列可以用SELECT查看,但是不可以用INSERT, UPDATE来修改,不可以用DELETE来删除。

UROWID:

ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。
  oracle提供了一种urowid的数据类型,同时支持物理和逻辑rowid。
  物理rowid又分为扩展rowid(extended rowid)和限制rowid(restricted rowid)两种格式。
  限制rowid主要是oracle7以前的rowid格式,现在已经不再使用,保留该类型只是为了兼容性。

例子1:

1.创建一临时表

create table test_rowid (id number, row_id rowid);

2.插入一行记录

insert into test_rowid values(1,null);

3.修改刚插入的记录

update test_rowid set row_id = rowid where id = 1;

4.查看rowid

select rowid,row_id from test_rowid;

例子2:

DECLARE
   Row_id ROWID;
   info    VARCHAR2(40);
BEGIN
  INSERT INTO scott.dept VALUES (90, '财务室', '海口')
  RETURNING rowid, dname||':'||to_char(deptno)||':'||loc
  INTO row_id, info;
  DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
  DBMS_OUTPUT.PUT_LINE(info);
END;
最后修改:2021 年 11 月 17 日
如果觉得我的文章对你有用,请随意赞赏