请教chartorowid()的用法???

[复制链接]
查看11 | 回复3 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
函数chartorowid()参数的设置如何?网上查到的资料如下
Syntax
CHARTOROWID(char)
Purpose
Converts a value from CHAR or VARCHAR2 datatype

to ROWID datatype.
Example
SELECT ename

FROM emp

WHERE ROWID =

CHARTOROWID('0000000F.0003.0002')

ENAME

-----

SMITH
另一例子如下所示,在下面的例子中字符串长度为18,改换长度报无此rowid类型,本菜鸟对oracle
知之甚少,对rowid类型不是很了解,书上说为隐式类型转换,那位可以详述一下.上下两种参数具体如何
设置
Purpose
Converts a value from CHAR or VARCHAR2 datatype to ROWID datatype.

Example
SELECT ename FROM emp
WHERE ROWID = CHARTOROWID('AAAAfZAABAAACp8AAO');

ENAME
----------
LEWIS

回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
'0000000F.0003.0002'
rowid的格式是固定的
如上
不能将随意的18个字符串转换为rowid
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
在一本书上查到,rowid为oracle系统数据库对象
rowid 的格式如下:
BBBBBBBB.RRRR.FFFF
BBBBBBBB 行在数据文件中所处的块号(十六进制)
RRRR 是数据行在块中所处的行号(十六进制)
FFFF 是块所处的文件
但是在下面的例子中,明显不符合此格式
SELECT ename FROM emp
WHERE ROWID = CHARTOROWID('AAAAfZAABAAACp8AAO');

ENAME
----------
LEWIS
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
和你的数据库版本有关,前一种格式是oracle 7的格式,oracle 8以后
rowid变为后面的格式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行