Вы можете использовать пакет TCP для записи вывода на терминал или в удаленный регистратор данных. Неплохая отладка кода пакета, выполняемого в запланированных задачах.
Редактировать: Вот пример процедуры:
procedure pDebug( str in varchar2 )
-- output debugging message to display or tcp console
is
x number;
l number;
nPort number;
sAddress varchar2(5000);
begin
if c_bDebug = 1 then
if c_tcpbDebug = 1 then
if cSocket.remote_host is NULL then
nPort := strMetaDataValue( 'TCP-DEBUG-PORT' );
sAddress := strMetaDataValue( 'TCP-DEBUG-ADDRESS' );
dbms_output.put_line( 'tcp:port ' || nPort );
dbms_output.put_line( 'tcp:address ' || sAddress );
if length( sAddress ) > 1 and nvl( nPort, 0 ) > 0 then
begin
dbms_output.put_line( 'tcp:open start ' ||to_char( SYSDATE, 'DD-MON-YYYY HH24:MI:SS' ) );
cSocket := utl_tcp.open_connection( sAddress, nPort ); -- open connection
dbms_output.put_line( 'tcp:open ' || to_char( SYSDATE, 'DD-MON-YYYY HH24:MI:SS' ) );
c_tcpbDebug := 1;
exception
when others then
dbms_output.put_line( SQLERRM );
dbms_output.put_line( 'Cant open debug tcp session ' || SYSTIMESTAMp );
c_tcpbDebug := 0;
end;
else
c_tcpbDebug := 0;
end if;
end if;
if cSocket.remote_host is not NULL then
dbms_output.put_line( 'tcp:write' );
x := utl_tcp.write_line( cSocket, to_char( SYSDATE, 'DD-MON-YYYY HH24:MI:SS' ) || ' ' || str );
x := utl_tcp.write_line( cSocket, utl_tcp.crlf );
end if;
end if;
-- this bit prints out the debug statement in 254 char bits
l := length( str );
x := 1;
while x <= l loop
dbms_output.put_line( substr( str,x,254 ) );
x := x + 254;
end loop;
end if;
end pDebug;