内容
SQL*Plusにて、SET LINES 〜
を設定後にDESCコマンドを実行すると、結果のフォーマットが崩れてしまい、SET LINES 80
を設定し直す必要がある。
めんどくさい。
SQLスクリプトdesc.sql
を作成し、
SQL> @desc <テーブル名>
でフォーマットが崩れていないdescの結果を表示するようにしました。
使い方
SQL> set lines 1000
SQL> show lines
linesize 1000
SQL> @desc v$instance
名前 NULL? 型
----------------------------------------- -------- ----------------------------
INSTANCE_NUMBER NUMBER
INSTANCE_NAME VARCHAR2(16)
HOST_NAME VARCHAR2(64)
VERSION VARCHAR2(17)
STARTUP_TIME DATE
STATUS VARCHAR2(12)
PARALLEL VARCHAR2(3)
THREAD# NUMBER
ARCHIVER VARCHAR2(7)
LOG_SWITCH_WAIT VARCHAR2(15)
LOGINS VARCHAR2(10)
SHUTDOWN_PENDING VARCHAR2(3)
DATABASE_STATUS VARCHAR2(17)
INSTANCE_ROLE VARCHAR2(18)
ACTIVE_STATE VARCHAR2(9)
BLOCKED VARCHAR2(3)
SQL> show lines
linesize 1000
SQLスクリプト
「★」マークの部分は環境に合わせて設定する必要があります。
SET TERMOUT OFF
-- 一時ファイル名の設定
DEF _MY_TMPFILE_PATH_STORE = "/tmp/__desc_store.tmp" --★
-- 環境設定の保存
STORE SET &_MY_TMPFILE_PATH_STORE REPLACE
SET TERMOUT ON
-- DESCの実行
set lines 80
desc &1
-- 環境設定の復元
SET TERMOUT OFF
@&_MY_TMPFILE_PATH_STORE
SET TERMOUT ON