如何增加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;
其实,即使这样也不适合我。 当我执行“从双selectdbms_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