[20191012]组成rowid.txt --//昨天做了拆分rowid的测试,链接http://blog.itpub.net/267265/viewspace-2659613/=>[20191011]拆分rowid 2.txt --//今天测试通过 data_object_id , file ,; block , row 组成rowid的脚本. --//Rowid 格式为:OOOOOOFFFBBBBBBRRR, data_object_id占6个字符,file占3个字符,block占6个字符,row占3个字符。当然如果存在在 --//存储中占用10个字节(32bit data_object_id +10 bit rfile# +22bit block + row 16bit)。 --//其中,O是对象ID,F是文件ID,B是块ID,R是行ID。 --//当然在普通索引中仅仅占6字节(注没有32bit data_object_id少4个字节,因为全部data_object_id都是一样的)。 --//分区表的全局索引中占10字节。 1.简单说明: Rowid采用64位进制编码,编码如下: A-Z <==> 0 - 25 (26) a-z <==> 26 - 51 (26) 0-9 <==> 52 - 61 (10) +/ <==> 62 - 63 (2) --//组成rowid,在oracle下通过执行: SYS@test> select dbms_rowid.rowid_create(1,28035,11,195,62) from dual; DBMS_ROWID.ROWID_C ------------------ AAAG2DAALAAAADDAA+ --//第一个参数1指建立extended ROWID. 2.测试: $ ./crrowid.sh 28035,11,195,62 rowid = AAAG2DAALAAAADDAA+ --//完成能与前面测试对上. 3.脚本如下: $ cat crrowid.sh #! /bin/bash # data_object_id , file ,; block , row --> rowid odebug=${ODEBUG:-0} O_BASE64=($( echo {A..Z} {a..z} {0..9} + / )) if [ $odebug -eq 1 ] ; then echo "ORACLE_BASE64 = ${O_BASE64[*]} " fi len=(6 3 6 3) a=0 res='' for i in $( echo "$*" | tr ',' ' ') do # echo $i result='' b=${len[$a]} for j in $(echo "obase=64; $i" | bc| tr -d '\\\r\n') do result=${result}${O_BASE64[$(( 10#$j ))]} done res=${res}$(printf "%${b}s" $result | tr " " "A") (( a++ )) done echo "rowid = $res"
[20191012]组成rowid.txt
来源:这里教程网
时间:2026-03-03 14:18:21
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Windows server服务器下Oracle监听报错ora-12560:TNS: 协议适配器错误
- ARCH wait on SENDREQ等待事件
ARCH wait on SENDREQ等待事件
26-03-03 - Oracle EBS中分类账和法人实体 的关系(有sql语句实例)
Oracle EBS中分类账和法人实体 的关系(有sql语句实例)
26-03-03 - 《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?
《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?
26-03-03 - 微信经常延迟,收不到消息怎么办?赶紧自查这3个功能是不是开启
微信经常延迟,收不到消息怎么办?赶紧自查这3个功能是不是开启
26-03-03 - oracle 查询
oracle 查询
26-03-03 - 《DNS攻击防范科普系列3》 -如何保障 DNS 操作安全
《DNS攻击防范科普系列3》 -如何保障 DNS 操作安全
26-03-03 - Oracle数据库SQL注入模拟与恢复
Oracle数据库SQL注入模拟与恢复
26-03-03 - 记一次客户DB CPU短时间内冲高至99%处理
记一次客户DB CPU短时间内冲高至99%处理
26-03-03 - 智能语音,交互入口的新未来
智能语音,交互入口的新未来
26-03-03
