Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> The structure of the row .................for those who don't kno
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_001_01BFFE2A.DA7E6020
Content-Type: text/plain;
charset="iso-8859-1"
Got this from my colleague
"The row structure is as follows:
Status Byte | Lock Byte | # Cols | Length Byte of first Column | Data of first Column | etc...
The key piece relevant to this topic is the # Cols. This piece of the header of each row defines how many columns for this table are represented in this row. For example the table has 10 columns defined, but for this given row only 6 are represented. So the system would store a length byte and Data pair for only the first 6 columns. The remaining four would not be stored at all and thus take up no storage at all.
If a null column is between two non null columns the system just stores a length byte, the values is strangely "FF" not zero as you might expect. So a row might look like:
C2 00 06 04 ABCD 03 ABC FF 02 AB 06 ABCDEF 01 A C2 Status byte (C2 if I recall correctly is a "normal" row) 00 Lock Byte Points to the trans slot that is locking the row (00 - no lock)
06 Six columns in this row
04 Length byte, ABCD Data
03 Length byte, ABC Data
FF Length byte of a NULL, no Data
02 Length byte, AB Data 06 Length byte, ABCDEF Data 01 Length byte, A Data If there are more columns in the table definition, all of them wouldbe null. This basic structure is the same in 7 and 8. "
Thx
Gautam
------_=_NextPart_001_01BFFE2A.DA7E6020
Content-Type: text/html;
charset="iso-8859-1"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META content="MSHTML 5.00.2919.6307" name=GENERATOR></HEAD>
<BODY>
<DIV>
<DIR>
<P><FONT color=#800000 face="Comic Sans MS" size=2><SPAN
class=460383815-04082000>Got this from my colleague</SPAN></FONT></P>
<P>"The row structure is as follows: </P>
<P>Status Byte | Lock Byte | # Cols | Length Byte of first Column | Data of
first Column | etc... </P>
<P>The key piece relevant to this topic is the # Cols. This piece of the header
of each row defines how many columns for this table are represented in this row.
For example the table has 10 columns defined, but for this given row only 6 are
represented. So the system <BR>would store a length byte and Data pair for only
the first 6 columns. The remaining four would not be stored at all and thus take
up <BR>no storage at all. </P>
<P>If a null column is between two non null columns the system just stores a
length byte, the values is strangely "FF" not zero as you might expect. So a row
might look like: </P>
<P>C2 00 06 04 ABCD 03 ABC FF 02 AB 06 ABCDEF 01 A </P>
<P>C2 Status byte (C2 if I recall correctly is a "normal" row) <BR>00 Lock Byte
Points to the trans slot that is locking the row (00 - no lock) <BR>06 Six
columns in this row <BR>04 Length byte, ABCD Data <BR>03 Length byte, ABC Data
<BR>FF Length byte of a NULL, no Data <BR>02 Length byte, AB Data <BR>06 Length
byte, ABCDEF Data <BR>01 Length byte, A Data </P>
<P>If there are more columns in the table definition, all of them would be null.
This basic structure is the same in 7 and 8. "</P></DIR></DIV>
<DIV><FONT color=#800000 face="Comic Sans MS" size=2>Thx</FONT></DIV>
<DIV><FONT face="Comic Sans MS" size=2><STRONG>Gautam
</STRONG></FONT></DIV></BODY></HTML>
Received on Fri Aug 04 2000 - 10:44:19 CDT