oracle中的外部rowid

来源:互联网 发布:世界贸易总额数据 编辑:程序博客网 时间:2024/05/21 01:52

作者:oracle中的外部rowid - xiaoma - xiaoma的博客 

在ORACLE 中用SELECT rowid form tabname,取得的ROWID ,如:AAADdeAAIAAABmPAAA,是经过BASE-64编码后的结果.

参考

以下是一段摘自ORACLE文档的内容:
DBMS_ROWID
The DBMS_ROWID package lets you create ROWIDs and get information about ROWIDs from PL/SQL programs and SQL statements. You can find the data block number, the object number, and other components of the ROWID without having to write code to interpret the base-64 character external ROWID.
本人大概翻译了一下,也不知道对不对:
DBMS_ROWID包(包含)可以让你通过PL/SQL程序和SQL语句来创建ROWIDs,取得ROWIDs有关信息(的函数,功能).(这些函数)使你可以找出包含在ROWID中的数据块编号,对象编号和其他组成部分,而不用(你)编写代码来解析基于BASE-64编码的外部ROWID.

注:目前尚不知道是不是标准的BASE-64编码

如果是按标准的Base-64来编码的话,那么除了大小写字母,数字,"+"和"/"外就没有其他字符会出现在ROWID中了(ROWID不需要用"="来补齐).

附Base-64标准代码表:
 0 A 17 R 34 i 51 z
 1 B 18 S 35 j 52 0
 2 C 19 T 36 k 53 1
 3 D 20 U 37 l 54 2
 4 E 21 V 38 m 55 3
 5 F 22 W 39 n 56 4
 6 G 23 X 40 o 57 5
 7 H 24 Y 41 p 58 6
 8 I 25 Z 42 q 59 7
 9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v (pad) =
14 O 31 f 48 w
15 P 32 g 49 x
16 Q 33 h 50 y

 

原创粉丝点击