关于ORACLE 1410:invalid ROIWD,然后借着机会学习了一波ROWID。

Posted 我有点秃页

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ORACLE 1410:invalid ROIWD,然后借着机会学习了一波ROWID。相关的知识,希望对你有一定的参考价值。

最近做公司的一个项目出现了ORACLE 1410:invalid ROIWD,百度之后被告知可以试试刷新索引,继续深究为啥和索引有关系,然后就发现了新的东西:

ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根据一行数据的ROWID能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作都是通过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。

第一部分6位表示:该行数据所在的数据对象的 data_object_id; 
第二部分3位表示:该行数据所在的相对数据文件的id; 
第三部分6位表示:该数据行所在的数据块的编号; 
第四部分3位表示:该行数据的行的编号;

索引就是保存了rowid后三个部分的信息。索引是物理存在的,而rowid是伪列。所以索引可以用来快速地定位到数据行。

以上是关于关于ORACLE 1410:invalid ROIWD,然后借着机会学习了一波ROWID。的主要内容,如果未能解决你的问题,请参考以下文章

关于opencv中cv::Mat设置roi

OpenCv 关于 rect ROI 的断言失败

OpenCV在限定的ROI中进行模版匹配问题,求指点!!

PIE怎么导出ROI数据

由 to_char 函数引起的 Oracle “Invalid Number”

Spring boot “oracle.jdbc.OracleDatabaseException: ORA-00904: invalid identifier” 创建表时出错