仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1094|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之利用dbms_rowid包取得rowid的具体信息

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 22:37:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你看出了作者的深度?深处半米!当初是冲那么多的大牛给他写序才买的,后来才发现无啥内容,作者也只是才用几年的新手,百花了几十两银子,再次感叹当今社会的虚伪与浮躁

利用dbms_rowid包取得rowid的具体信息

LastUpdated:Sunday,2004-11-0712:46Eygle






Rowid中包括了纪录的具体信息,经由过程dbms_rowid包能够取得这些信息.本文经由过程一个界说自界说函数先容该package的利用.

createorreplacefunctionget_rowid(l_rowidinvarchar2)returnvarchar2isls_my_rowidvarchar2(200);rowid_typenumber;object_numbernumber;relative_fnonumber;block_numbernumber;row_numbernumber;begindbms_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_fnois:||to_char(relative_fno)||chr(10)||Blocknumberis:||to_char(block_number)||chr(10)||Rownumberis:||to_char(row_number);returnls_my_rowid;end;/



我们看一下其用法:



[oracle@jumpertools]$sqlplusscott/tigerSQL*Plus:Release9.2.0.4.0-ProductiononSunNov712:30:192004Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.Connectedto:Oracle9iEnterpriseEditionRelease9.2.0.4.0-ProductionWiththePartitioningoptionJServerRelease9.2.0.4.0-ProductionSQL>setechoonSQL>@f_get_rowidSQL>createorreplacefunctionget_rowid2(l_rowidinvarchar2)3returnvarchar24is5ls_my_rowidvarchar2(200);6rowid_typenumber;7object_numbernumber;8relative_fnonumber;9block_numbernumber;10row_numbernumber;11begin12dbms_rowid.rowid_info(l_rowid,rowid_type,object_number,relative_fno,block_number,row_number);13ls_my_rowid:=Object#is:||to_char(object_number)||chr(10)||14Relative_fnois:||to_char(relative_fno)||chr(10)||15Blocknumberis:||to_char(block_number)||chr(10)||16Rownumberis:||to_char(row_number);17returnls_my_rowid;18end;19/Functioncreated.SQL>SQL>select*fromdept;DEPTNODNAMELOC-------------------------------------10ACCOUNTINGNEWYORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTONSQL>selectrowid,a.*fromdepta;ROWIDDEPTNODNAMELOC-------------------------------------------------------AAABiPAABAAAFRSAAA10ACCOUNTINGNEWYORKAAABiPAABAAAFRSAAB20RESEARCHDALLASAAABiPAABAAAFRSAAC30SALESCHICAGOAAABiPAABAAAFRSAAD40OPERATIONSBOSTONSQL>colrow_idfora60SQL>selectget_rowid(AAABiPAABAAAFRSAAA)row_idfromdual;ROW_ID------------------------------------------------------------Object#is:6287Relative_fnois:1Blocknumberis:21586Rownumberis:0SQL>selectget_rowid(AAABiPAABAAAFRSAAB)row_idfromdual;ROW_ID------------------------------------------------------------Object#is:6287Relative_fnois:1Blocknumberis:21586Rownumberis:1SQL>







本文作者:
eygle,Oracle手艺存眷者,来自中国最年夜的Oracle手艺论坛itpub.
www.eygle.com是作者的团体站点.你可经由过程Guoqiang.Gai@gmail.com来接洽作者.接待手艺切磋交换和链接互换.

原文出处:

http://www.eygle.com/faq/Use.dbms_rowid.Package.Get.Detail.Of.Rowid.htm


用一个库#bak_database存放这些历史数据。
飘灵儿 该用户已被删除
7#
发表于 2015-3-25 11:30:16 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
透明 该用户已被删除
6#
发表于 2015-3-18 03:39:17 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
不帅 该用户已被删除
5#
发表于 2015-3-11 09:54:14 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
简单生活 该用户已被删除
地板
发表于 2015-2-12 20:17:34 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
分手快乐 该用户已被删除
板凳
发表于 2015-2-5 15:46:59 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-28 09:30:07 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
若天明 该用户已被删除
楼主
发表于 2015-1-19 18:59:30 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 04:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表