Lukas Eder
Lukas Eder

Reputation: 221106

How to interpret ALL_TAB_COLS.DATA_LENGTH = 4000 for Oracle's CLOB types?

When I create a table with a CLOB in it, the CLOB column is reported to have a DATA_LENGTH of 4000:

create table test (
  data clob
);

-- Returns 4000
select data_length from all_tab_cols
where table_name = 'TEST';

How can I interpret that? Is that some backwards-compatible tweak, considering that the limit for VARCHAR2 is also 4000? Or is this to indicate that I can only insert / update string literals of length 4000? Is this behaviour of SYS.ALL_TAB_COLS documented somewhere?

Upvotes: 1

Views: 3272

Answers (1)

li-on
li-on

Reputation: 539

Up to 4000 bytes can be stored in-line in the tablespace. If the length of the CLOB exceeds 4000 bytes it must be stored in/readed from LOB storage area via special functions.

See also:

Upvotes: 3

Related Questions