Imprimir texto en la ventana Hoja de trabajo SQL de Oracle SQL Developer


91

Estoy usando Oracle SQL (en SQLDeveloper, usando la hoja de trabajo SQL). Me gustaría imprimir una declaración antes de mi selección, como

PRINT 'Querying Table1';
SELECT * from Table1;

¿Qué uso para imprimir / mostrar la salida de texto? No es Print, porque eso me da el error: Bind Variable Table1NO ESTÁ DECLARADO. DBMS_OUTPUT.PUT_LINE es un comando desconocido. (Obviamente, soy un usuario de SQLDeveloper y Oracle sin experiencia. Debe haber algún sinónimo para Print, pero tengo problemas para encontrar ayuda sin saber qué es).

Respuestas:


143

ingrese la descripción de la imagen aquí

para comentarios simples:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('simple comment');
end;
/

-- do something

begin
    DBMS_OUTPUT.put_line('second simple comment');
end;
/

deberías conseguir:

anonymous block completed
simple comment

anonymous block completed
second simple comment

si desea imprimir los resultados de las variables, aquí hay otro ejemplo:

set serveroutput on format wrapped;
declare
a_comment VARCHAR2(200) :='first comment';
begin
    DBMS_OUTPUT.put_line(a_comment);
end;

/

-- do something


declare
a_comment VARCHAR2(200) :='comment';
begin
    DBMS_OUTPUT.put_line(a_comment || 2);
end;

su salida debe ser:

anonymous block completed
first comment

anonymous block completed
comment2

1
La primera línea establece la salida del servidor en formato envuelto; debe configurarse la salida del servidor en formato WRAPPED;
geographika

No puedo hacer que esto funcione. set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual Me da: select * from dual; Error report: ORA-06550: line 7, column 1: PLS-00103: Encountered the symbol "SELECT" 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action
dwjohnston

9
En las versiones más recientes de SQL Developer, primero debe abrir la ventana Salida de DBMS usando la barra de menú superior: Ver> Salida de Dbms.
Bruno Ranschaert

podría haberlo hecho, pero la captura de pantalla y sin texto, habría sido un +1 jaja
David Mann

41
PROMPT text to print

Nota: debe usar Ejecutar como script (F5) no Ejecutar instrucción (Ctl + Enter)


1
Esto es muy útil. ¡Gracias!
sunlover3

También me funciona con Run Statement (Ctl + Enter).
Pascal R.

21

Puede activar el eco :

set echo on
REM Querying table
select * from dual;

En SQLDeveloper, presione F5 para ejecutarlo como un script.


Había aceptado esto como una respuesta, pero veo que otra respuesta tiene muchos más puntos, así que cambié mi aceptación a eso. Sin embargo, esto funcionó para mí y es una buena respuesta.
thursdaysgeek

13

Podría poner su texto en una declaración selecta como ...

SELECT 'Querying Table1' FROM dual;

8

La respuesta principal dejó fuera un paso para nuevas instalaciones donde uno tiene que abrir la ventana de salida de dbms.

ingrese la descripción de la imagen aquí

Luego, el script que usé:

dbms_output.put_line('Start');

Otro guión:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('jabberwocky');
end;

7

Para mí, solo podía hacer que funcionara

set serveroutput on format word_wrapped;

WRAPPED acaba de arrojar errores: el comando SQLPLUS falló - no hay suficientes argumentos


1

Si no desea que se repitan todas sus declaraciones SQL, pero solo desea ver los resultados fácilmente identificables de su script, hágalo de esta manera:

activar el eco

REM MyFirstTable

apagar el eco

eliminar de MyFirstTable;

activar el eco

REM MySecondTable

apagar el eco

eliminar de MySecondTable;

La salida del ejemplo anterior se verá así:

-REM MyFirstTable

13 filas eliminadas.

-REM MySecondTable

27 filas eliminadas.


0

Si omito begin - end, es un error. Entonces para mí esto está funcionando (no se necesita nada más):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.