305: p_jms_text_message.text_vc := null;
306: p_jms_text_message.text_lob := null;
307: else
308: begin
309: p_jms_text_message.text_len := dbms_lob.getLength(payload);
310:
311: if(p_jms_text_message.text_len = 0) then
312: p_jms_text_message.text_vc := null;
313: p_jms_text_message.text_lob := null;
312: p_jms_text_message.text_vc := null;
313: p_jms_text_message.text_lob := null;
314: else
315: --Bug 2632448
316: l_length := lengthb(dbms_lob.substr(payload));
317:
318: if(l_length <= 4000) then
319: --elsif(p_jms_text_message.text_len <= 4000) then
320: dbms_lob.read(lob_loc => payload,
316: l_length := lengthb(dbms_lob.substr(payload));
317:
318: if(l_length <= 4000) then
319: --elsif(p_jms_text_message.text_len <= 4000) then
320: dbms_lob.read(lob_loc => payload,
321: amount => p_jms_text_message.text_len,
322: offset => 1,
323: buffer => l_text);
324:
335: end if;
336: end if;
337: exception
338: when invalid_lob_locator then
339: -- when 'payload' is an empty_clob, dbms_lob.getLength(payload)
340: -- raises an 'ORA-22275: invalid LOB locator specified' error
341:
342: p_jms_text_message.text_len := 0;
343:
356: begin
357: if p_jms_text_message.text_lob is null then
358: l_text_lob_length := 0;
359: else
360: l_text_lob_length := dbms_lob.getlength(p_jms_text_message.text_lob);
361: end if;
362: exception
363: when others then
364: l_text_lob_length := 0;
371:
372: if(p_jms_text_message.text_vc is not null and
373: l_text_lob_length = 0) then
374:
375: dbms_lob.createTemporary(lob_loc => payload,
376: cache => true);
377:
378: dbms_lob.write(lob_loc => payload,
379: amount => p_jms_text_message.text_len,
374:
375: dbms_lob.createTemporary(lob_loc => payload,
376: cache => true);
377:
378: dbms_lob.write(lob_loc => payload,
379: amount => p_jms_text_message.text_len,
380: offset => 1,
381: buffer => p_jms_text_message.text_vc);
382: else