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.
dbms_lob.freetemporary
releases memory block (which may be huge enough) without waiting for variable goes out of scope, so you can control memory usage in a bit more flexible way. – Tenuous