I don't quite get the point of the dbms_lob.createtemporary() function. How is:
DECLARE
myclob CLOB;
BEGIN
myclob := 'foo';
END;
any different from:
DECLARE
myclob CLOB;
BEGIN
dbms_lob.createtemporary( myclob, TRUE );
myclob := 'foo';
dbms_lob.freetemporary( myclob );
END;
I'm assuming the actions in between the create and free calls make it relevant, but I'm just not clear on how.