12
返回列表 发新帖
楼主: mustapha

如何得到视图具体存储的block号

[复制链接]
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
 楼主| 发表于 2007-2-5 14:42 | 显示全部楼层
最初由 NinGoo 发布
[B]视图不存储数据,何来视图的存储结构

数据字典在内存中以放在row cache中的,也就是以行为单位load的,你定位其对应的block做什么? [/B]


我在第一贴种已经说明了视图不是段,也不能定义存储结构,但是它也是按一定的结构把定义信息存储在数据字典中的,我就是想看看是不是直接按照视图定义字符存储的,能解决么?

使用道具 举报

回复
论坛徽章:
3
数据库板块每日发贴之星
日期:2007-01-19 01:03:19数据库板块每日发贴之星
日期:2007-02-06 01:02:43会员2007贡献徽章
日期:2007-09-26 18:42:10
发表于 2007-2-5 14:43 | 显示全部楼层
最初由 NinGoo 发布
[B]不知道这个是不是你要的

[php]

SYS@ning>create view v_test as select * from ning.test;

View created.


SYS@ning>select object_id from all_objects where object_name='V_TEST';

OBJECT_ID
----------
     10540


SYS@ning>select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_numb
er(rowid) from view$ where obj#=10540;

DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
------------------------------------ ------------------------------------
                                   1                                14184
--

[/php] [/B]


这个简单,呵呵
sys@ORA10R2> select object_id from all_objects where object_name='VEW_T';

OBJECT_ID
----------
     53663

使用道具 举报

回复
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
 楼主| 发表于 2007-2-5 14:47 | 显示全部楼层
NinGoo 和 fangjinde 的办法我先试试看,谢了

使用道具 举报

回复
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
 楼主| 发表于 2007-2-5 14:59 | 显示全部楼层
你们的方法照理都是可以的,NinGoo的更简单,但是dump出来的块里确没有想要的view的定义信息,都是别的view,虽然知道了view在字典中也是按照定义时的字符直接存储的,但是比较奇怪为什么居然有偏差

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2007-2-5 15:08 | 显示全部楼层
最初由 mustapha 发布
[B]你们的方法照理都是可以的,NinGoo的更简单,但是dump出来的块里确没有想要的view的定义信息,都是别的view,虽然知道了view在字典中也是按照定义时的字符直接存储的,但是比较奇怪为什么居然有偏差 [/B]


怎么可能没有

[php]
SYS@ning>alter system dump datafile 1 block 14184;

SYS@ning>select dbms_rowid.rowid_row_number(rowid) from view$ where obj#=10540;

DBMS_ROWID.ROWID_ROW_NUMBER(ROWID)
----------------------------------
                                 7

tab 0, row 7 @0x126a
tl: 248 fb: --H-FL-- lb: 0x2  cc: 8
col  0: [ 4]  c3 02 06 29
col  1: [38]
2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
col  2: [ 2]  c1 0e
col  3: [ 2]  c1 0e
col  4: [ 1]  80
col  5: [ 1]  80
col  6: [ 3]  c2 02 57
col  7: [186]
73 65 6c 65 63 74 20 22 4f 57 4e 45 52 22 2c 22 4f 42 4a 45 43 54 5f 4e 41
4d 45 22 2c 22 53 55 42 4f 42 4a 45 43 54 5f 4e 41 4d 45 22 2c 22 4f 42 4a
45 43 54 5f 49 44 22 2c 22 44 41 54 41 5f 4f 42 4a 45 43 54 5f 49 44 22 2c
22 4f 42 4a 45 43 54 5f 54 59 50 45 22 2c 22 43 52 45 41 54 45 44 22 2c 22
4c 41 53 54 5f 44 44 4c 5f 54 49 4d 45 22 2c 22 54 49 4d 45 53 54 41 4d 50
22 2c 22 53 54 41 54 55 53 22 2c 22 54 45 4d 50 4f 52 41 52 59 22 2c 22 47
45 4e 45 52 41 54 45 44 22 2c 22 53 45 43 4f 4e 44 41 52 59 22 20 66 72 6f
6d 20 6e 69 6e 67 2e 74 65 73 74

对照view$的定义
SYS@ning>desc view$
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------

OBJ#                                      NOT NULL NUMBER
AUDIT$                                    NOT NULL VARCHAR2(38)
COLS                                      NOT NULL NUMBER
INTCOLS                                   NOT NULL NUMBER
PROPERTY                                  NOT NULL NUMBER
FLAGS                                     NOT NULL NUMBER
TEXTLENGTH                                         NUMBER
TEXT                                               LONG


其中col0就是obj#

SYS@ning>select dump(10540,16) from dual;

DUMP(10540,16)
----------------------
Typ=2 Len=4: c3,2,6,29

col7就是view的text
SYS@ning>select text from view$ where obj#=10540;

TEXT
--------------------------------------------------------------------------------

select "OWNER","OBJECT_NAME","SUBOBJECT_NAME","OBJECT_ID","DATA_OBJECT_ID","OBJE


SYS@ning>select dump('select "OWNER","OBJECT_NAME","SUBOBJECT_NAME","OBJECT_ID",
"DATA_OBJECT_ID","OBJE',16) from dual;

DUMP('SELECT"OWNER","OBJECT_NAME","SUBOBJECT_NAME","OBJECT_ID","DATA_OBJECT_ID",

--------------------------------------------------------------------------------

Typ=96 Len=80: 73,65,6c,65,63,74,20,22,4f,57,4e,45,52,22,2c,22,4f,42,4a,45,43,54

,5f,4e,41,4d,45,22,2c,22,53,55,42,4f,42,4a,45,43,54,5f,4e,41,4d,45,22,2c,22,4f,4

2,4a,45,43,54,5f,49,44,22,2c,22,44,41,54,41,5f,4f,42,4a,45,43,54,5f,49,44,22,2c,

22,4f,42,4a,45

自己好好dump看看


--
[/php]

使用道具 举报

回复
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
 楼主| 发表于 2007-2-5 15:28 | 显示全部楼层
呵呵,谢谢 NinGoo 细心指导,的确是我马虎了, 表名被存在2行里,
test]
[1,
这样了,我搜索一下没有就没仔细看,呵呵

使用道具 举报

回复
论坛徽章:
3
数据库板块每日发贴之星
日期:2007-01-19 01:03:19数据库板块每日发贴之星
日期:2007-02-06 01:02:43会员2007贡献徽章
日期:2007-09-26 18:42:10
发表于 2007-2-5 15:52 | 显示全部楼层
Ningoo,贴代码的时候怎么把代码像你那放入代码区?
用[ CODE ]  [ /CODE ] 怎么不行?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2007-2-5 15:55 | 显示全部楼层
最初由 fangjinde 发布
[B]Ningoo,贴代码的时候怎么把代码像你那放入代码区?
用[ CODE ]  [ /CODE ] 怎么不行? [/B]


用[ php ][ /php ]

使用道具 举报

回复
论坛徽章:
22
2010新春纪念徽章
日期:2010-03-01 11:08:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
发表于 2007-2-5 16:47 | 显示全部楼层
应该是看view$的内容吧..

那才是真正存储view definition的地方啊..

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表