rowid
rowid:select t.*,t.rowid from test t; -- AACeJKAAIAAAA4XAAA
注:有个很二需求,通过一个存储过程插入的数据必须是放在一块的,不能分散开存储,考虑用到使用insert /*+append*/ into插入数据,需要了解一下数据的存储原理
AACeJK AAI AAAA4X AAA
数据对象编号(6位)文件编号(3位) 块编号(6位) 行序号(3位)
declare
v_rowid rowid;
v_rowid_type number;
v_object_number number;
v_relative_fno number;
v_block_number number;
v_row_number number;
begin
--得到输入变量v_rowid,把它传递给dbms_rowid.rowid_info过程
dbms_rowid.rowid_info('AACeJKAAIAAAA4XAAA',
v_rowid_type,
v_object_number,
v_relative_fno,
v_block_number,
v_row_number);
dbms_output.put_line('row id is: ' || v_rowid);
dbms_output.put_line('rowid type is: ' || v_rowid_type || ' -- ' ||
v_object_number || ' -- ' || v_relative_fno ||
' -- ' || v_block_number || ' -- ' || v_row_number); --此处测试仅显示1-2个输出参数,其它同理
end;
select dbms_rowid.rowid_relative_fno(row_id => 'AACeJKAAIAAAA4XAAA')
from dual
select * from v$datafile;
--数据对象编号
select * from user_objects t where t.data_OBJECT_ID = '647754';
--文件编号
select * from v$datafile where file# = 8;
rowid本身是一种数据类型
错误:
select t.*,t.rowid from test t where t.rowid ='AAA111';
正确:
select t.*,t.rowid from test t where ROWIDTOCHAR(t.rowid)='AAA111';
ROWIDTOCHAR(t.rowid):将rowid转化成string
CHARTOROWID('rowid_string') :将string转换成ROWID
select CHARTOROWID('AAAAB0AABAAAAOhAAA') from dual;
rowid类型:
Extended rowid:使用表空间相关的数据块地址,8i及以上使用这种格式
Restricted rowid:使用数据库范围的数据块地址,oracle 7或更早前的版本使用
rowid的更多相关文章
- 使用rowid抽取数据方法以及大数据量游标卡住的应对
平时工作的时候,经常会遇到这种事情,从一个大表A中,抽取字段a在一个相对较小B的表的数据,比如,从一个详单表中,抽取几万个用户号码的话单出来.这种时候,一般来说, 做关联查询: create tabl ...
- 【转】oracle中rowid的用法 (全面)
ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普通的堆表中的rowid是物理rowid,索引组织表 ...
- rownum和rowid伪列
select row employee_id,last name,salary from employees; select row employee_id,last name,salary from ...
- TOAD和PLSQL 默认日期显示、rowid显示、TNSNAME的修改
先说下要解决的问题: select rowid,acct_id,state_date from acct; 修改后,1)sql指明rowid,可以显示出来 2)时间格式显示为YYYYMMDD HH24 ...
- ROWID伪列
ROWID伪列概念: 在数据表中每一行所保存的记录,oracle会为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID表示的. 所有的数据都利用ROWID进行定位. 观察rowid的存在 SQ ...
- Oracle中rownum和rowid的理解(转)
本文转自地址http://www.linuxidc.com/Linux/2012-04/58300.htm rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每 ...
- Oracle中的rownum和rowid
http://blog.csdn.net/mitedu/article/details/3584399 rownum http://blog.csdn.net/mitedu/article/deta ...
- 关于oracle的rowid
oracle数据库中表的每一行(元组)均有一个rowid,它是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普 ...
- ora-01445:无法从不带保留关键字的表的连接视图中选择ROWID或采样
系统要创建一个物化试图,用到很多张表,执行的时候报错: ora-01445:无法从不带保留关键字的表的连接视图中选择ROWID或采样 网上搜了下,有多种原因和解决方法,最终我选择先尝试一下修改 ...
- ORACLE rowid,file# 和 rfile#
rowid简介 rowid就是唯一标志记录物理位置的一个id,在oracle 8版本以前,rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# , ...
随机推荐
- Oracle超出最大连接数问题及解决
用过Oracle的应该都熟悉如何查看和设置Oracle数据库的最大连接数.这里就再啰嗦一遍. 查看当前的连接数,可以用select count(*) from v$process;设置的最大连接数(默 ...
- 教你50招提升ASP.NET性能(十五):解决性能问题时不要低估UI的价值
(26)Don’t underestimate the value of the UI when tackling performance problems 招数26: 解决性能问题时不要低估UI的价 ...
- JavaWeb学习篇之----容器Response详解
今天在来看一下Response容器的相关知识,其实这篇blog早就应该编写了,只是最近有点忙,所以被中断了.下面我们就来看一下Response容器的相关知识吧.Response和我们即将在后面说到的R ...
- DevExpress - cxGrid 使用方法
如何设置多选,并对多个选中行进行数据处理. 1.首先需要将需要获取的字段的列添加到 Grid 中,例如 grdDemoColumn1. 2.将 Grid 的 OptionsSelection 中的 C ...
- 解决Android上的QPython不能import urllib的问题
试用了一下QPython,感觉很强大,Kivy也包含进去了,下载一些第三方库也很方便,相对于SL4A来说确实先进了很多. 但是很快发现不能import urllib,提示大概是这样的内容: No mo ...
- pjsip视频通信开发(上层应用)之数字键盘的制作
在pjsip视频通信开发(上层应用)之EditText重写中我制作了一个显示输入内容的EditText,这里将制作一个数字键盘,其实跟计算器一样,最多的就是用TableLayout来实现,内部通过权重 ...
- 项目源码--Android本地音乐播放器
下载源码 技术要点: 1.本地音乐播放与管理 2.支持在线下载 3.非库音频流的解码 4. UI控件的综合使用 5. HTTP通信模块 6. Mysql数据库的综合使用 7. 后台服务技术 8. 源码 ...
- 升级时出现:请先升级 UCenter 到 1.6.0 以上版本。
有的站点UCenter升级完成后仍然提示请先升级 UCenter 到 1.6.0 以上版本的现象,下面分享下UCenter版本号不正确的原因和处理办法,可能有以下的几个文件和处理办法: 一.UCent ...
- Apache Shiro Architecture--官方文档
原文地址:http://shiro.apache.org/architecture.html Apache Shiro's design goals are to simplify applicati ...
- SQlServer2008 之 定时执行sql语句作业的制定
1.打开[SQL Server Management Studio],在[对象资源管理器]列表中选择[SQL Server 代理]: 2.鼠标右击[SQL Server 代理],选择[启动(S)],如 ...