如何增加sqlplus列的输出长度?

我有一些查询来找出模式中的一些对象的ddl。 我得到的结果列被截断在查询的中间。

我怎样才能增加列的?

我试过了

SET SERVEROUTPUT ON SIZE 1000000; SET LINESIZE 50000; set pagesize 50000; set long 50000; 

但是,仍然得到相同的结果。

任何帮助确实。

谢谢

我刚刚使用了下面的命令:

 SET LIN[ESIZE] 200 

(来自http://ss64.com/ora/syntax-sqlplus-set.html )。

这工作正常,但你必须确保你的控制台窗口足够宽。 如果您从MS Windows命令提示符直接使用SQL Plus,则无论使用任何SQL Plus LINESIZE规范,控制台窗口都会自动将该行包装在“Screen Buffer Size Width ”属性设置为的位置。

正如@simplyharsh所build议的那样,您还可以使用COLUMN col_name FORMAT Ax (其中x是所需的长度,以字符forms)configuration各个列以显示设置宽度 – 如果您有一个或两个额外的大列,并且您希望在控制台屏幕上显示其值的摘要。

这个configuration正在为我工​​作:

 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 

使用linesize选项的column格式定义有助于避免在80个字符处截断。

尝试这个

COLUMN col_name格式A24

24你是宽度。

在Linux上试试这些。

  • 设置closures
  • 将微调设置为ON
  • 设置trimspool
  • 设置serveroutput
  • 设置页面大小0
  • 设置长20000000
  • 设置longchunksize 20000000
  • 设置行数4000

除了设置LINESIZE,正如LordScree所build议的那样,你也可以指定输出到一个文件,以解决控制台宽度的问题。 以下是我如何做到这一点:

 set linesize 15000; spool myoutput.txt; SELECT ... spool off; 

其实,即使这样也不适合我。 当我执行“从双selectd​​bms_metadata.get_ddl('TABLESPACE','TABLESPACE_NAME');” 我再次只有前三行,但是这一行每行都填充了15000个字符。 我能够解决这个问题:

 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; 

当然似乎应该有一个更简单的方法,但我似乎无法find它。

我使用的是:

 set long 50000 set linesize 130 col x format a80 word_wrapped; select dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA') x from dual; 

还是我错过了什么?

在Windows上,你可以试试这个:

  • 在sqlplus窗口中右键单击
  • select属性 – >布局
  • 将屏幕缓冲区大小宽度增加到1000