表題のとおり。 実行はsystemでやるべき。
set line 200 set pagesize 0 set head off set trimspool on spool dbf_autoextend_off.sql select 'alter database datafile ' || '''' || file_name || '''' || ' autoextend off;' from dba_data_files ; spool off host vi dbf_autoextend_off.sql -- ちょっとだけゴミ消したり、UNDOをコメントアウトしたり @dbf_autoextend_off.sql
コメントに書いた通りUNDOは自動拡張してもいいことないのでコメントアウトするべき、そもそもwhere条件でUNDOを消せばいいのだが後から手作業コメントアウト。 「select文自身」「rows selected.」「SQL> spool off」とかがゴミとしてでてくる、もう少しスマートにする余地あるが結局spoolを使うのであんまり真面目にやらない。 (もう少し言えばdbf_autoextend_off.sqlファイルを後から見たとき、dba_data_filesをselectした上でコメントアウトしたという意図が後から見てわかる)