Which two statements are true about the initialization of internal LOBs? (Choose two.)
A.
The EMPTY_CLOB() and EMPTY_BLOB() functions can be used to initialize only null internal LOBs.
B.
The EMPTY_CLOB() and EMPTY_BLOB() functions can be used to initialize only non-NULL internal LOBs.
C.
The EMPTY_CLOB() and EMPTY_BLOB() functions can be used to initialize both null and non-NULL internal LOBs.
D.
The CLOB and BLOB columns can be initialized only by using the EMPTY_CLOB() and EMPTY_BLOB() functions, respectively.
E.
The CLOB and BLOB columns can be initialized with a character or raw string, respectively, provided they are less than 4000 bytes in size.
Explanation:
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28393/adlob_tables.htm
From Oracle documentation:
“You can initialize the LOB column or LOB attributes to a value that contains more than 4G bytes of data, the limit before release 10.2.”
Could someone shed a light on why answer E is correct? The 4000 bytes limit appears in documentation mainly in connection with “in row”/”out of row” storage.
Thanks
Biga
if the LOB is stored inline(enable storage_in_row), it could be initilized to string less that 4000 bytes;
if the LOB is stored out of line (stored in LOBSEGMENT), it could be initilized to string less that 4000 bytes as well but the LOB data is stored in LOBSEGMENT
http://docs.oracle.com/cd/E18283_01/appdev.112/e18294/adlob_ddl.htm
“You can also initialize a LOB column with a character or raw string less than 4000 bytes in size.”
C, E
http://docs.oracle.com/cd/E18283_01/appdev.112/e18294/adlob_ddl.htm#i1007252
C, E.
CREATE TABLE HWLOB2(COL1 CLOB, COL2 BLOB);
INSERT INTO HWLOB2 VALUES(‘ABC’, UTL_RAW.CAST_TO_RAW(‘CDE’));