All the blocks of a chunk must be continual with a single extent, because you cannot specify a chunk size larger than the next extent size. Based on this rule, I add different chunk size support to AUL 4. Following are two demo tables, they both contains one column and only one row, populated with the same data.
SQL> SELECT TABLE_NAME,COLUMN_NAME,CHUNK FROM USER_LOBS;
TABLE_NAME COLUMN_NAME CHUNK
--------------- ------------ ----------
T_CHUNK2 COL1 32768
T_CHUNK1 COL1 16384
Then we will use the chunk option of unload command to specify the LOB chunk size (how many blocks?) of this table, default is one. There is one limit that all the LOB columns should have the same chunk size in a single table. Then we start to unload the two LOB value to OS files :
AUL> set clob_edian big
Current CLOB_EDIAN is : BIG
AUL> set lob_storage 1
Current LOB_STORAGE is : 1-FILE
AUL> set lob_convert 1
Current LOB_CONVERT is : 1-GBK
AUL> unload table anysql.t_chunk1 CHUNK 2;
2006-12-19 12:58:18
Unload OBJD=9986 FILE=4 BLOCK=5243 CLUSTER=0 ...
LOB_0100147C_1FE8.dat
2006-12-19 12:58:18
AUL> unload table anysql.t_chunk2 CHUNK 4;
2006-12-19 12:58:25
Unload OBJD=9989 FILE=4 BLOCK=5523 CLUSTER=0 ...
LOB_01001594_1FE8.dat
2006-12-19 12:58:25
The above command created two data files on disk, LOB_0100147C_1FE8.dat and LOB_01001594_1FE8.dat, let's check the size and do a compare with the original data file:
C:\MYDUL>DIR LOB*
Volume in drive C has no label.
Volume Serial Number is 5CF4-08FE
Directory of C:\MYDUL
2006-12-19 12:58 63,681 LOB_0100147C_1FE8.dat
2006-12-19 12:58 63,681 LOB_01001594_1FE8.dat
2 File(s) 127,362 bytes
0 Dir(s) 9,507,389,440 bytes free
C:\MYDUL>diff LOB_0100147C_1FE8.dat c:\anysql\tnsnames.ora
C:\MYDUL>diff LOB_01001594_1FE8.dat c:\anysql\tnsnames.ora
C:\MYDUL>
I will try to totally support LOB data type, to support different LOB chunk size in a single table.
