我正在使用PL / SQL 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,但是由于某些原因它不完整,并且其他假脱机文件只有一部分名称
感谢您为解决此问题提供的帮助
嗯,在SQL * Plus中,例如。
set linesize 100
设置其长度。我不知道它是否也可以在PL / SQL 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
这就是为什么我不确定它是否会有所帮助,但是-您可以尝试。