rowid 行唯一标识符,也称为伪列
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
1.ROWIDTOCHAR
语法: ROWIDTOCHAR(rowid)
功能: 将ROWID类型的数值rowid转换为其外部的18字符的字符串表示,在oracle7和oracle8之间有些不一样的地方. ROWIDTOCHAR和CHARTOROWID是两个相反的函数.
SAMPLE:
SQL> select rowid,rowidtochar(rowid) from emp;
ROWID ROWIDTOCHAR(ROWID)
------------------ ------------------
AAAMgzAAEAAAAAgAAO AAAMgzAAEAAAAAgAAO
AAAMgzAAEAAAAAgAAA AAAMgzAAEAAAAAgAAA
AAAMgzAAEAAAAAgAAB AAAMgzAAEAAAAAgAAB
AAAMgzAAEAAAAAgAAC AAAMgzAAEAAAAAgAAC
AAAMgzAAEAAAAAgAAD AAAMgzAAEAAAAAgAAD
AAAMgzAAEAAAAAgAAE AAAMgzAAEAAAAAgAAE
2.CHARTOROWID
语法:CHARTOROWID(string)
功能描述:把包含外部格式的ROWID的CHAR或VARCHAR2数值转换为内部的二进制格式.参数string必须是包含外部格式的ROWID的18字符的字符串.oracle7和 oracle8中的外部格式是不同的.CHARTOROWID是ROWIDTOCHAR的反函数.
SAMPLE:
SQL> select rowid,chartorowid('ssssffffgggghhhhrr'),ename from emp;
ROWID CHARTOROWID('SSSSF..) ENAME
------------------ ------------------ ----------
AAAMgzAAEAAAAAgAAA AsssffABiAAAhhhBrr SMITH
AAAMgzAAEAAAAAgAAB AsssffABiAAAhhhBrr ALLEN
AAAMgzAAEAAAAAgAAC AsssffABiAAAhhhBrr WARD
AAAMgzAAEAAAAAgAAD AsssffABiAAAhhhBrr JONES
AAAMgzAAEAAAAAgAAE AsssffABiAAAhhhBrr MARTIN
AAAMgzAAEAAAAAgAAF AsssffABiAAAhhhBrr BLAKE
AAAMgzAAEAAAAAgAAG AsssffABiAAAhhhBrr CLARK
3.应用--根据查询出的ROWID更新删除表记录
--查询
SELECT ROWIDTOCHAR (wocardinfo.ROWID) rowidnum, wocardinfo.*
FROM info.t_ci_wocardinfo wocardinfo
WHERE wocardinfo.svcnum = '15611312368'
AND wocardinfo.preferencetype = '120027'
AND wocardinfo.cardnum IS NULL
AND ROWNUM = 1;
--更新
UPDATE info.t_ci_wocardinfo
SET remark = '发送成功'
WHERE ROWIDTOCHAR (ROWID) = 'AAA4JOAE6AAALyCAAA';
--删除
DELETE FROM info.t_ci_wocardinfo
WHERE ROWIDTOCHAR (ROWID) = 'AAA4JOAE6AAALyCAAA';
分享到:
相关推荐
rowid与rownumber的介绍 rowid rownumber
mysql虚拟了一个rowid(类似跟oracle的rowid)--SQL语句
利用rowid快速在线更新海量数据 利用rowid快速在线更新海量数据
Oracle学习笔记(rownum和rowid),有具体的代码案例讲解rownum和rowid
Oracle数据库rowid深入探析.pdf
oracle 数据库 rowid与rownum的使用
oracle_SQL中rowid与rownum的使用
oracle_SQL中ROWID与ROWNUM的使用 很有用哦
举例介绍在oracle中rownum和rowId的不同以及使用方法
oracle rowid rownum 等组成原理
BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf
对一个大表进行UPDATE,DELETE,如果在一个SESSION里面运行SQL,很容易引发undo不够, 或者由于一些原因,导致回滚,这个是灾难
总结一下几种查找和删除重复记录的方法,适用于有大量重复记录的情况
ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中...
ORACLE 中ROWNUM用法总结!数据库管理员及程序开发员必看。
oracle error invalid rowid
大家在MySQL中我们可能听到过rowid的概念,但是却很难去测试实践,不可避免会有一些疑惑,比如: 如何感受到rowid的存在; rowid和主键有什么关联关系; 在主键的使用中存在哪些隐患; 如何来理解rowid的潜在...
sql学习 oracle 行定位与rowid描述.sql