我有一些查询可以从模式中找出某些对象的ddl。 我得到的结果列在查询中间被截断。
如何增加列的使用?
我试过
SET SERVEROUTPUT ON SIZE 1000000;
SET LINESIZE 50000;
set pagesize 50000;
set long 50000;
但是,仍然得到相同的结果。
确实有任何帮助。
由于
答案 0 :(得分:54)
我刚刚使用了以下命令:
SET LIN[ESIZE] 200
(来自http://ss64.com/ora/syntax-sqlplus-set.html)。
编辑:为清楚起见,有效命令为SET LIN 200
或SET LINESIZE 200
。
这样可以正常工作,但您必须确保控制台窗口足够宽。如果您从MS Windows命令提示符直接使用SQL Plus,则无论SQL Plus {{{ 1}}规范。
根据@simplyharsh的建议,您还可以使用LINESIZE
(其中 x 是所需的长度,以字符为单位)配置各列以显示设置的宽度 - 如果您有用有一个或两个额外的大列,你只想在控制台屏幕上显示它们的值的摘要。
答案 1 :(得分:27)
此配置对我有用:
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
使用column
选项的linesize
格式定义有助于避免在80个字符处截断。
答案 2 :(得分:13)
试试这个
COLUMN col_name FORMAT A24
其中24是你的宽度。
答案 3 :(得分:7)
在Linux上试试这些:
set wrap off
set trimout ON
set trimspool on
set serveroutput on
set pagesize 0
set long 20000000
set longchunksize 20000000
set linesize 4000
答案 4 :(得分:4)
除了设置LINESIZE之外,正如LordScree建议的那样,您还可以指定输出到文件,以克服控制台宽度的问题。我是这样做的:
set linesize 15000;
spool myoutput.txt;
SELECT
...
spool off;
答案 5 :(得分:2)
实际上,即使这对我也不起作用。当我从dual执行“select dbms_metadata.get_ddl('TABLESPACE','TABLESPACE_NAME')时;”我再次只获得前三行,但这次每行被填充到15,000个字符。我能够解决这个问题:
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;
看起来似乎应该有一种更简单的方式,但我似乎无法找到它。
答案 6 :(得分:1)
我用的是什么:
set long 50000
set linesize 130
col x format a80 word_wrapped;
select dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA') x from dual;
或者我错过了什么?
答案 7 :(得分:0)
这些建议都不适合我。我终于找到了我能做的其他事情 - dbms_output.put_line
。例如:
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;
/
动臂。它打印出我想要的一切 - 没有截断或类似的东西。这可以在sqlplus
中直接使用 - 无需将其放在单独的文件或任何内容中。
答案 8 :(得分:0)
CLOB列对我来说就像是一种魅力:
set long 20000000
set linesize 32767
column YOUR_COLUMN_NAME format a32767
select YOUR_COLUMN_NAME from YOUR_TABLE;
答案 9 :(得分:-4)
在Windows上,您可以尝试: