2012-03-01 33 views
7

Estoy intentando depurar un procedimiento almacenado (Oracle). Quiero imprimir algunas variables.cómo imprimir en el procedimiento almacenado de Oracle (para depuración)?

No sé cuál es el comando para imprimir (o dónde encontrarlo). ¿Puede alguien decirme qué es esto?

Gracias

EDIT:

Ésta es mi gatillo:

create or replace 
procedure bns_saa_confs_update_state (
    theID in varchar2 
) 
AS 
begin 
    UPDATE BNS_SAA_CONFIRMATIONS SET SentToWssStatus='T' WHERE ID=theID; 
    commit; 
end; 

Quiero imprimir theID

Respuesta

16

Utilice la función dbms_output.put_line():

declare 
    my_var varchar2(20); 
begin 
    my_var := 'Hello World'; 
    dbms_output.put_line(my_var); 
end; 
/

Asegúrese de tener set serveroutput on si se ejecuta desde SQLPlus, o configure la salida si se ejecuta desde un IDE. Algunos desarrolladores crearán una función de contenedor para simplificar la depuración.

4

es probable que desee el DBMS_OUTPUT paquete, es decir,

DECLARE 
    a INTEGER := 0; 
BEGIN 
    dbms_output.put_line('Starting value: ' || a); 
    a := a + 1; 
    dbms_output.put_line('Ending value: ' || a); 
END; 

Tenga en cuenta que por lo general, necesita habilitar DBMS_OUTPUT en la aplicación cliente antes de que se mostrarán los datos. En SQL * Plus, tendrá que

set serveroutput on; 

antes de ejecutar el procedimiento almacenado para que los datos que se mostrarán después de la ejecución. Otras herramientas GUI tienen diferentes enfoques para habilitar DBMS_OUTPUT.

Cuestiones relacionadas