Delphi - Devolver datos proc. almacenados con Oracle

 
Vista:

Devolver datos proc. almacenados con Oracle

Publicado por Adolfo Santiago (1 intervención) el 06/11/2003 13:47:09
Tenemos el siguiente procedimiento almacenado:

Procedure get_message (p_msg_id OUT number,
p_msg_content OUT varchar2,
p_status OUT varchar2,
p_additional_info OUT varchar2) is
Cursor c_msg is
Select m.msg_id, m.msg_status, m.message_content
from abs_ism_messages m
where m.msg_status in ('CONSTRUCTED')and
m.msg_transport_type = 'Z' and
m.msg_type = 'CUSCAR'
order by m.date_created;

reg_c_msg c_msg%rowtype;
no_found boolean;
begin
open c_msg;
fetch c_msg into reg_c_msg;
if c_msg%NOTFOUND then
close c_msg;
p_status := 'EMPTY';
return;
end if;
close c_msg;
update abs_ism_messages
set msg_status = 'SENT',
date_sent = sysdate
where msg_id = reg_c_msg.msg_id;

p_msg_id := reg_c_msg.msg_id;
p_msg_content := reg_c_msg.message_content;
p_status := 'OK';
commit;

EXCEPTION
When Others then
p_additional_info := SQLCODE||' '||SQLERRM;
p_status := 'FAIL';
end;

Como recogemos un parametro de salida que tiene más de 255 caracteres. Lo hemos intentado con todos los tipos que aparecen en los tipos de parametros del procedimiento almacenado y no somos capaces. El campo de la tabla con el que grabamos el parametro de salida es del tipo LONG (campo p_msg_content del procedimiento)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder