Connor and Chris will both be at AI World from October 12 to October 17 , the premier Oracle conference of 2025. If you're in Vegas, please come say Hi or pop into our sessions
Thanks for the question, Peter.
Asked: December 01, 2016 - 6:56 am UTC
Last updated: December 04, 2016 - 1:10 pm UTC
Version: 12.1.0.2.0
Viewed 1000+ times
SQL> create table t( 2 photo clob 3 ); Table created. SQL> create or replace procedure get_photo( p_photo OUT cLOB) as 2 begin 3 select photo 4 into p_photo 5 from t; 6 end; 7 / Procedure created. SQL> create or replace procedure get_photo2( p_photo OUT NOCOPY cLOB) as 2 begin 3 select photo 4 into p_photo 5 from t; 6 end; 7 / Procedure created. SQL> declare 2 c clob; 3 begin 4 dbms_lob.createtemporary(c,true); 5 for i in 1 .. 100000 loop 6 dbms_lob.writeappend(c,10000,rpad('x',10000,'x')); 7 end loop; 8 insert into t values (c); 9 commit; 10 end; 11 / PL/SQL procedure successfully completed. SQL> select dbms_lob.getlength(photo) from t; DBMS_LOB.GETLENGTH(PHOTO) ------------------------- 1000000000 SQL> conn connor/connor Connected. SQL> variable c2 clob SQL> exec get_photo2(:c2); PL/SQL procedure successfully completed. Elapsed: 00:00:00.00 SQL> @stat Enter value for stat_prefix: pga SID_STAT# NAME VALUE ---------- -------------------------------------------------- ---------- 37 session pga memory 1311640 38 session pga memory max 2508344 2 rows selected. SQL> conn connor/connor Connected. SQL> variable c1 clob SQL> exec get_photo(:c1); PL/SQL procedure successfully completed. Elapsed: 00:00:00.00 SQL> @stat Enter value for stat_prefix: pga SID_STAT# NAME VALUE ---------- -------------------------------------------------- ---------- 37 session pga memory 983960 38 session pga memory max 2508344 2 rows selected.
A reader, December 02, 2016 - 5:54 am UTC
Complete documentation on Securefiles and Large Objects here