Quería imprimir el valor de una variable particular que está dentro de un bloque anónimo. Estoy usando Oracle SQL Developer. Intenté usar dbms_output.put_line
. Pero no está funcionando. El código que estoy usando se muestra a continuación.Imprimir el valor de una variable en SQL Developer
SET SERVEROUTPUT ON
DECLARE
CTABLE USER_OBJECTS.OBJECT_NAME%TYPE;
CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;
V_ALL_COLS VARCHAR2(500);
CURSOR CURSOR_TABLE
IS
SELECT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE='TABLE'
AND OBJECT_NAME LIKE 'tb_prm_%';
CURSOR CURSOR_COLUMNS (V_TABLE_NAME IN VARCHAR2)
IS
SELECT COLUMN_NAME
FROM ALL_TAB_COLS
WHERE TABLE_NAME = V_TABLE_NAME;
BEGIN
OPEN CURSOR_TABLE;
LOOP
FETCH CURSOR_TABLE INTO CTABLE;
EXIT WHEN CURSOR_TABLE%NOTFOUND;
OPEN CURSOR_COLUMNS (CTABLE);
V_ALL_COLS := NULL;
LOOP
FETCH CURSOR_COLUMNS INTO CCOLUMN;
V_ALL_COLS := V_ALL_COLS || CCOLUMN;
IF CURSOR_COLUMNS%FOUND THEN
V_ALL_COLS := V_ALL_COLS || ', ';
ELSE
EXIT;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE(V_ALL_COLS);
END LOOP;
CLOSE CURSOR_TABLE;
END;
Y yo estoy recibiendo la salida sólo como anonymous block completed
.
La salida se vacía al final/terminación del programa, así es como funciona. No se puede descargar para mostrar mientras se está ejecutando.Mire en las tablas de registro (transacción autónoma) para ver qué ocurre mientras se ejecuta un programa – tbone
¿Por qué no utilizar el depurador incorporado y recorrer su bloque? Muestra el estado de todas las variables. – Wolf
SET SERVEROUTPUT ON; --agregar dos puntos, seleccionar TODO y ejecutar en desarrollador, para mí funciona bien, –