Can anyone please tell what is the basic difference between empty_clob
and createtemporary
.
Here is my code.
/*empty_clob vs createtemporary()*/
DECLARE
elob CLOB;
tlob CLOB;
BEGIN
IF elob IS NULL THEN
dbms_output.put_line('elob is null');
ELSE
dbms_output.put_line('elob has a locator');
END IF;
IF tlob IS NULL THEN
dbms_output.put_line('tlob is null');
ELSE
dbms_output.put_line('tlob has a locator');
END IF;
elob := empty_clob;
dbms_lob.createtemporary(tlob, false);
IF elob IS NULL THEN
dbms_output.put_line('elob is null');
ELSE
dbms_output.put_line('elob has a locator');
END IF;
IF tlob IS NULL THEN
dbms_output.put_line('tlob is null');
ELSE
dbms_output.put_line('tlob has a locator');
END IF;
dbms_lob.freetemporary(elob); -- exception
dbms_lob.freetemporary(tlob);
END;
and why I can not pass an empty object locator which is returned by empty_clob
to any dbms_lob function/procedure.