[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的更多相关文章

  1. [20191011]拆分rowid 2.txt

    [20191011]拆分rowid 2.txt --//有了链接http://blog.itpub.net/267265/viewspace-2659612/=>[20191011]bash任意 ...

  2. Linux内核配置选项

    http://blog.csdn.net/wdsfup/article/details/52302142 http://www.manew.com/blog-166674-12962.html Gen ...

  3. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED3.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED3.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...

  4. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...

  5. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCHE ...

  6. [20191012]使用bash从sql_id计算hash_value.txt

    [20191012]使用bash从sql_id计算hash_value.txt --//没有什么实际意义,仅仅验证方法是否可行.--//sql_id的计算是使用MD5算法进行哈希,生成一个128位的H ...

  7. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...

  8. [20190130]删除tab$记录的恢复.txt

    [20190130]删除tab$记录的恢复.txt --//网上提到许多删除tab$的案例,主要原因在于没有从官方正规渠道下载oracle版本,还有一些来自工具里面带有一些脚本删除tab$记录. -- ...

  9. [20190306]奇怪的查询结果.txt

    [20190306]奇怪的查询结果.txt--//链接http://www.itpub.net/thread-2108588-1-1.html提到一个非常古怪的问题,我自己重复测试看看:1.环境:SC ...

随机推荐

  1. FCC---Use the CSS Transform scale Property to Scale an Element on Hover

    The transform property has a variety of functions that let you scale, move, rotate, skew, etc., your ...

  2. vue-awesome-swiper中的数据异步加载

    <template> <div> //第一个轮播 加了v-if 判断,可以实现 loop 轮循 <swiper v-if="gglist.length>1 ...

  3. arcgis api 4.x for js 地图加载多个气泡窗口展示(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...

  4. aws创建ec2虚拟机

    利用亚马逊AWS搭建个人服务器 https://www.jianshu.com/p/a045d4217175 https://segmentfault.com/a/1190000019201071?u ...

  5. 035.[转] 获取HttpServletRequest请求Body中的内容

    注意: HttpServletRequest 请求中的 body 内容仅能调用 request.getInputStream(), request.getReader()和request.getPar ...

  6. Hadoop HA 架构

    为什么要用集群? 企业里面,多台机器 伪分布式 每一个角色都是一个进程 HDFS: NN SNN DN YARN: RM NM 大数据所有组件, 都是主从架构 master-slave HDFS读写请 ...

  7. pymysql增删改查操作

    表结构 CREATE TABLE `students` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFA ...

  8. tensorflow 资源汇总-docker 运行 tensorflow-gpu on nvidia support

    tensorflow 容器运行过程中使用到的命令记录: 使用image启动容器命令: docker run --name=: tensorflow/tensorflow:latest-gpu-py3- ...

  9. July 20th, 2019. Week 29th, Saturday

    If we just open the door a crack, the light comes pouring in. 只要把门开个小口,光就会倾泻而入. Don't be so disheart ...

  10. (day67)作业

    有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/tv/001.png', title: 'tv1'}, {img: 'img/tv/002.png ...