在命令窗口中设置线轴的行数。

问题描述 投票:0回答:1

我使用的是PLSQL Developer 11.0.6.1776版本。

当我在命令窗口中启动脚本时,我所要转发的文件名是不完整的。

这是我的脚本。

set pagesize 0
set long 90000
SET TERMOUT OFF
spool out.sql

select 'spool C:\Users\personal\MAIN_USR\index\'||REPLACE(index_name, '$', '_')||'.txt'||chr(13)||chr(10)||
'SELECT DBMS_METADATA.GET_DDL(''INDEX'','''||index_name||''',''MTO_INDX'') '||chr(13)||chr(10)||
'FROM DUAL;'||chr(13)||chr(10)||
'spool off' as cmd
FROM user_indexes ui
INNER JOIN MTTO_TAB_EXIST_ALL tea USING(table_name)
WHERE tea.MRK_DEL_PERM = 'Y'
AND tea.OWNER_NM = 'MTO_INDX'
AND MCA_BACKUP_DDL != 'Y';

spool off

@OUT.SQL

exit

在卷轴中,一些文件看起来像下面这样。

spool C:\Users\personal\MAIN_USR\index\CIA_PRD_PRDR_DISTR_INV_3242.t

文件的扩展名应该是.txt, 但由于某些原因它是不完整的 而其他的文件只有部分名称

我感谢任何帮助解决这个问题

oracle sqlplus plsqldeveloper spool
1个回答
0
投票

那么,在SQL*Plus中,它是e.g.

set linesize 100

设置它的长度。我不知道在PLSQL Developer中是否也能用。

另一方面,即使将行的大小设置为一个较低的数字(例如50),SQL*Plus也会 "断行",并将剩下的文字移到下一行。

SQL> set linesize 50
SQL>
SQL> select 'spool C:\Users\personal\MAIN_USR\index\'||REPLACE(index_name, '$', '_')||'.txt'||chr(13)||chr(10)||
  2  'SELECT DBMS_METADATA.GET_DDL(''INDEX'','''||index_name||''',''MTO_INDX'') '||chr(13)||chr(10)||
  3  'FROM DUAL;'||chr(13)||chr(10)||
  4  'spool off' as cmd
  5  from (select 'i01_abc_omm' index_name from dual);

CMD
--------------------------------------------------
spool C:\Users\personal\MAIN_USR\index\i01_abc_omm
.txt                                                      --> see? Moved to the next line
SELECT DBMS_METADATA.GET_DDL('INDEX','i01_abc_omm'
,'MTO_INDX')
FROM DUAL;
spool off

这就是为什么我不确定它是否真的会有帮助,但是--你可以试试。

© www.soinside.com 2019 - 2024. All rights reserved.