Command for setting Inline Length has no effect I dropped a CLOB(2G) NOT LOGGED column in a table and recreated it with the same size and the LOGGED attribute.
If I look at the syscat.columns I see that the INLINE_LENGTH is 0. The old column had this value set to 312 which is the minimum value accepted.

However if I try to set the inline length of the column with the following command the value doesn't change

ALTER TABLE MYSCHEMA.MYTABLE ALTER MYCOLUMN SET INLINE LENGTH 312 


The command complete successfully but apparently there is no change in the inline length. 

The following query returns 1 record with a value of 0:

SELECT INLINE_LENGTH FROM syscat.columns WHERE TABNAME='MYTABLE' AND COLNAME='MYCOLUMN'


I would expect a record with a value of 312. Furthermore if I look at the DDL of the table there is no INLINE LENGTH specification.

I also tried to specify the inline length in the ADD COLUMN statement but the result is the same.

How can it be possible ?
The reason for this behavior is that DB2 must have enough space for the largest possible LOB locator in the column for the row in the table.  

INLINE LENGTH is not like a VARCHAR where space is used only according to the amount of data.  It's like CHAR – the size you specify is reserved in every single row of the table.  

From the documentation (scroll down to description of INLINE LENGTH integer):


  For a column of data type LOB, the default inline length is set to be the maximum size of the LOB descriptor if the clause is not specified. Any explicit INLINE LENGTH must be at least the maximum LOB descriptor size. 


There's a table that shows the minimum explicit inline length for various LOB lengths, and for CLOB(2G), the maximum LOB Locator size is 312 bytes.  

Therefore, for your table, the inline length must be at least 312 bytes to ensure that the largest possible LOB Locator can be stored.