ラァンフォーヱヴアー

出先・常駐先用コマンドリスト。2020年からリモートワークなので常駐なくなったけど。その他思ったことメモ。

Oracle DBで全部のDBFを自動拡張するスクリプトを作る方法

表題のとおり。 実行は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した上でコメントアウトしたという意図が後から見てわかる)