tamaño - cómo aumentar la longitud de salida de la columna sqlplus?
sqlplus title example (9)
Acabo de usar el siguiente comando:
SET LIN[ESIZE] 200
(de http://ss64.com/ora/syntax-sqlplus-set.html ).
Esto funciona bien, pero debes asegurarte de que la ventana de tu consola sea lo suficientemente amplia. Si está utilizando SQL Plus directamente desde el símbolo del sistema de MS Windows, la ventana de la consola automáticamente ajustará la línea a lo que esté configurada la propiedad " Ancho del ancho del búfer de pantalla", independientemente de cualquier especificación SQL Plus LINESIZE
.
Como sugiere @simplyharsh, también puede configurar columnas individuales para mostrar anchos establecidos, usando COLUMN col_name FORMAT Ax
(donde x es la longitud deseada, en caracteres) - esto es útil si tiene una o dos columnas extra grandes y desea para mostrar un resumen de sus valores en la pantalla de la consola.
Tengo algunas consultas para descubrir el ddl de algunos objetos de un esquema. Estoy obteniendo el resultado; las columnas se truncan en medio de las consultas.
¿Cómo puedo aumentar el nivel de la columna?
Lo intenté con
SET SERVEROUTPUT ON SIZE 1000000;
SET LINESIZE 50000;
set pagesize 50000;
set long 50000;
Pero, aún obteniendo el mismo resultado.
Cualquier ayuda de hecho.
Gracias
Además de configurar LINESIZE, como sugirió LordScree, también podría especificar que salga a un archivo para solucionar el problema con el ancho de la consola. Así es como lo hago:
set linesize 15000;
spool myoutput.txt;
SELECT
...
spool off;
En Linux, prueba estos:
set wrap off
set trimout ON
set trimspool on
set serveroutput on
set pagesize 0
set long 20000000
set longchunksize 20000000
set linesize 4000
En Windows puedes probar esto:
- haga clic derecho en la ventana sqlplus
- seleccionar propiedades -> diseño
- aumentar el ancho del tamaño del búfer de pantalla a 1000
En realidad, incluso eso no funcionó para mí. Cuando ejecuté "seleccione dbms_metadata.get_ddl (''TABLESPACE'', ''TABLESPACE_NAME'') desde dual;" Nuevamente obtuve solo las primeras tres líneas, pero esta vez cada línea estaba acolchada a 15,000 caracteres. Pude solucionar esto con:
select substr(dbms_metadata.get_ddl(''TABLESPACE'',''LM_THIN_DATA''),80) from dual;
select substr(dbms_metadata.get_ddl(''TABLESPACE'',''LM_THIN_DATA''),160) from dual;
select substr(dbms_metadata.get_ddl(''TABLESPACE'',''LM_THIN_DATA''),240) from dual;
Seguramente parecía que debería haber una manera más fácil, pero no pude encontrarlo.
Esta configuración funciona para mí:
set termout off
set verify off
set trimspool on
set linesize 200
set longchunksize 200000
set long 200000
set pages 0
column txt format a120
La definición de formato de column
con la opción de linesize
ayudó a evitar el truncamiento a 80 caracteres.
Lo que uso:
set long 50000
set linesize 130
col x format a80 word_wrapped;
select dbms_metadata.get_ddl(''TABLESPACE'',''LM_THIN_DATA'') x from dual;
¿O me estoy perdiendo algo?
Ninguna de estas sugerencias funcionaba para mí. Finalmente encontré algo más que podía hacer: dbms_output.put_line
. Por ejemplo:
SET SERVEROUTPUT ON
begin
for i in (select dbms_metadata.get_ddl(''INDEX'', index_name, owner) as ddl from all_indexes where owner = ''MYUSER'') loop
dbms_output.put_line(i.ddl);
end loop;
end;
/
Auge. Imprimió todo lo que quería, sin truncar ni nada de eso. Y eso funciona directamente en sqlplus
, sin necesidad de ponerlo en un archivo separado ni nada.
Prueba esto
COLUMNA col_name FORMAT A24
donde 24 es tu ancho