oracle中的外部rowid

本文探讨了Oracle数据库中ROWID的使用及如何通过PL/SQL程序和SQL语句获取ROWID信息。ROWID是Oracle用来唯一标识表中每一行记录的一种特殊的数据类型。文中提到ROWID是以Base-64编码形式存储的,并提供了关于ROWID内部结构的解析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者: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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值