网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.快速解决SQL server 2005孤立用户.
.SQL Server 2005使用基于行版本控.
.SQL中也可以用格式字符串定制日期.
.如何利用数据库储存图档.
.诊断全局错误时如何在系统级进行.
.ASE锁模式:AllPages DataPages .
.Sql 语句:显示 Sql Server 中所.
.在无法增强硬件配置的情况下对性.
.实例讲解Informix日期边界处理的.
.MS SQL可写脚本和编程的扩展SSIS.
.SQL中代替Like语句的另一种写法.
.MS SQL数据库备份和恢复存储过程.
.事务保存点在一个订购系统中的使.
.详细介绍查询优化技术在现实系统.
.安装SQL Server 2005时出现计数器.
.SQL Server数据库简体繁体数据混.
.几种解决互联网应用程序开发的好.
.拷贝的SQL Server 7数据库的恢复.
.用一个案例讲解应用程序越来越慢.
.轻松掌握Oracle数据库Where条件执.

巧用dbms_rowid包获得rowid的详细信息

发表日期:2008-5-17


我们知道,Rowid中包含了记录的详细信息,通过dbms_rowid包可以很轻松地获得这些信息.本文将通过一个自定义函数详细介绍这个package的使用。

create or replace function get_rowid
(l_rowid in varchar2)
return varchar2
is
ls_my_rowid  varchar2(200);          
rowid_type  number;          
object_number  number;          
relative_fno  number;          
block_number  number;          
row_number  number;  
begin
dbms_rowid.rowid_info(l_rowid,rowid_type,
object_number,relative_fno, block_number, row_number);          
ls_my_rowid := 'Object# is      :'||to_char(object_number)||chr(10)||
'Relative_fno is :'||to_char(relative_fno)||chr(10)||
'Block number is :'||to_char(block_number)||chr(10)||
'Row number is   :'||to_char(row_number);
return ls_my_rowid ;
end;          
/

其它的用法:

[oracle@jumper tools]$ sqlplus scott/tiger

SQL*Plus: Release 9.2.0.4.0 - Production on Sun Nov 7 12:30:19 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> set echo on
SQL> @f_get_rowid
SQL> create or replace function get_rowid
2  (l_rowid in varchar2)
3  return varchar2
4  is
5  ls_my_rowid        varchar2(200);
6  rowid_type number;
7  object_number      number;
8  relative_fno       number;
9  block_number       number;
10  row_number number;
11  begin
12   dbms_rowid.rowid_info(l_rowid,rowid_type,

object_number,relative_fno, block_number, row_number);

13   ls_my_rowid := 'Object# is :'||to_char(object_number)||chr(10)||

14   'Relative_fno is :'||to_char(relative_fno)||chr(10)||

15    'Block number is :'||to_char(block_number)||chr(10)||
16    'Row number is   :'||to_char(row_number);
17   return ls_my_rowid ;
18  end;
19  /

Function created.

SQL> 
SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
10 ACCOUNTING     NEW YORK
20 RESEARCH       DALLAS
30 SALES          CHICAGO
40 OPERATIONS     BOSTON

SQL> select rowid,a.* from dept a;

ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAABiPAABAAAFRSAAA         10 ACCOUNTING     NEW YORK
AAABiPAABAAAFRSAAB         20 RESEARCH       DALLAS
AAABiPAABAAAFRSAAC         30 SALES          CHICAGO
AAABiPAABAAAFRSAAD         40 OPERATIONS     BOSTON


SQL> col row_id for a60
SQL> select get_rowid('AAABiPAABAAAFRSAAA') row_id from dual;

ROW_ID
------------------------------------------------------------
Object# is      :6287
Relative_fno is :1
Block number is :21586
Row number is   :0


SQL> select get_rowid('AAABiPAABAAAFRSAAB') row_id from dual;

ROW_ID
------------------------------------------------------------
Object# is      :6287
Relative_fno is :1
Block number is :21586
Row number is   :1
SQL>
上一篇:诊断全局错误时如何在系统级进行设置 人气:920
下一篇:在SQL Server 2005数据库中进行错误捕捉 人气:1168
浏览全部dbms_rowid的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐