Oracle SqlPlus 設定 - foolmacky/DevelopDocs GitHub Wiki

■ Prompt設定

  • 複数のDBにアクセスするので、間違いを防ぐために接続先のDB名を表示したほうがいい
  • oraset.sql
set echo on
set linesize 80
set pagesize 500
set heading on
ALTER SESSION SET NLS DATE FORMAT = 'YYYY-MM-DD HH24:MI:SS';
--ALTER SESSION SET CURRENT_SCHEMA = HOGE;
set feedback on
set verify off
set long 9999
set pages 9999
column define_servername new_value _SERVER_HOST noprint
SELECT SYS_CONTEXT('USERENV','SERVER_HOST') define_servername from dual;
set sqlprompt "_SERVER_HOST > "

--@/Users/hoge/bin/oracolumns.sql
set exitcommit off
  • oraset.sqlを使って、通常のselect, ファイルなどへのspool出力に分けて画面制御する
  • orasel.sql
set termout off
@/Users/hoge/bin/oraset.sq1
@/users/hoge/bin/oracolumns.sq1
set linesize 1000
set termout on
  • oraspool.sql
set termout off

@/Users/hoge/bin/oraset.sq1
@/Users/hoge/bin/orafulcolumns.sal

set echo off
set linesize 10000
set trimspool on on
set feedback off
set pagesize 0
set termout on
  • column表示を適切な長さにするための各種カラム設定
  • oraclumns.sql
col hoge format a40

col INDEX_NAME format a50
col TABLE_NAME format a50
col COLUMN_NAME format a50
col OWNER format a40
col USERNAME format a30
col GRANTEE format a25
col GRANTOR format a25
col PRIVILEGE format a20

rlwrapでのwrap

  • 素のsqlplusコマンドはインラインでの編集などが非常にやりにくいため、通常はrlwrapでwrapする
  • sqlplusの設定ではpromptに色をつけられないので、rlwrapでoption設定するとつけることができる
//.zshrc
alias sql='rlwrap sqlpus'
alias sqlp='rlwrap -p"BLUE" sqlplus'