Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Incorrect Migrated/Chained rows...

Re: Incorrect Migrated/Chained rows...

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Thu, 29 Apr 2004 19:55:09 +0000 (UTC)
Message-ID: <c6rmit$jin$1@hercules.btinternet.com>

Since most databases have fewer than 1,000 files, it's a safe bet that the absolute file number is the same as the relative file number, so if you want to be lazy:

select

     dbms_rowid.rowid_relative_fno(rowid)   fno,
     dbms_rowid.rowid_block_number(rowid)   bno
from

    ....

If you have an larger database, then look at the rowid_to_absolute_fno(rowid, schema, table) call.

-- 
Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

April 2004 Iceland  http://www.index.is/oracleday.php
June  2004      UK - Optimising Oracle Seminar
July 2004 USA West Coast, Optimising Oracle Seminar
August 2004 Charlotte NC, Optimising Oracle Seminar
September 2004 USA East Coast, Optimising Oracle Seminar
September2004 UK - Optimising Oracle Seminar

"MAK" <maks70_at_comcast.net> wrote in message
news:b7178504.0404290950.31e5ecd4_at_posting.google.com...

> >
> > Suggested experiment:
> > create some 300 column rows that are only 1,000 bytes long.
> > See if Oracle will allow the two pieces to be in different blocks
> > See if they are reported as chained when
> > a) the two pieces are in the same block
> > b) the two pieces are in different blocks.
> >
> > There's a recent article about row-chaining here that might
> > be of interest.
> > http://www.tlingua.com/articles/rc.html
>
> JL,
>
> Thanks for your valuable feed-back. How do I check wheather two row
> pieces are in the same or different block? I presume you must be
> refering to block dump. Right.
> I have question regarding dumping block that has migrated/chained row.
> I got the row id & its extended rowid as well. see following.
>
> 1 select dbms_rowid.rowid_to_restricted(rowid,0)
> 2 from mars7.TEMP_S_CONTACT_02
> 3 where rowid in (select head_rowid
> 4 from mars7.chained_rows
> 5 where table_name = 'TEMP_S_CONTACT_02'
> 6* )
> AC7MARS.SYS.SQL>
> /
>
> DBMS_ROWID.ROWID_T
> ------------------
> 00099BF0.001A.0044
> -Blk#---.-RID-.File#.
>
> What value I should be supplying to for the block no? Should I supply
> decimal of 99BF0(629744)?
>
> alter system dump datafile 44 block <blk#>
>
> Infact I supplied that but did not gave good dump. In header it self
> says following.
> -----------------------------
> Start dump data blocks tsn: 22 file#: 44 minblk 629744 maxblk 629744
> buffer tsn: 22 rdba: 0x00099bf0 (0/629744)
> scn: 0x0000.00000000 seq: 0x01 flg: 0x01 tail: 0x00000001
> frmt: 0x02 chkval: 0x0000 type: 0x00=unknown
> Hex dump of corrupt header 4 = CORRUPT
> --------------------------------
>
>
> Thanks in advance for your help...
Received on Thu Apr 29 2004 - 14:55:09 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US