A Oracle SQL*Plus - user000422/0 GitHub Wiki
基本
■実行可能なコマンド SQL、SQL*Plusコマンド、PL/SQL
起動と接続
ローカル接続 ※環境変数ORACLE_SIDにインスタンスSIDの設定が必須
REM ユーザ名とパスワードを指定
sqlplus sampleuser/samplepass
REM ユーザ名とパスワードと接続識別子(tnsnames.oraのネットサービス名を接続識別子として記述)
sqlplus sample/1234@orcl
REM 簡易接続ネーミング(設定ファイルの準備が不要)
REM ユーザー名/パスワード@サーバ名:1521/サービス名
sqlplus sampleuser/[email protected]:1521/orcl.world
REM SYSユーザで接続
REM オプション「as sysdba」が必須
REM ユーザ名とパスワード
sqlplus sys/1234 as sysdba
REM OS認証で接続(ユーザ名とパスワード省略)
sqlplus / as sysdba
rem 起動コマンド(DB接続せずに起動)
sqlplus /nolog
rem DB接続(管理者権限 : OS認証)
connect / as sysdba
rem DB接続(管理者権限 : パスワード認証)
connect ユーザー名/パスワード as sysdba
rem DB接続(サービス指定)
connect ユーザー名/パスワード@ネットサービス名
SQL*Plusコマンド
セミコロンで終了する必要はない
-- SET SQL*Plusシステム変数を設定
-- SET PAGESIZE 1ページの行数 ※初期値 14
SET PAGESIZE 100
-- SET LINESIZE 1行に表示する文字(バイト数) ※初期値 80 ※spool出力にも影響
SET LINESIZE 1000
-- SELECT結果などのヘッダ表示(カラム名など) ※初期値 ON
SET HEADING OFF
-- nullデータを別の文字に置換して表示
-- デフォルトだと空で表示されNULLと分かりづらいため
SET NULL NULL -- NULLの場合「NULL」と表示する
-- LONG 結果の出力バイト数を設定(trigger_bodyなど長いSQLは初期値だと少ししか表示されないためLONGで対応)
SET LONG 10000
-- COLUMN 列の表示形式を設定、確認
COLUMN name format a12 -- name列の表示設定(例:半角12)
-- SHOW PARAMETERS 初期化パラメータの設定値を確認
SHOW PARAMETERS
-- テーブルの列定義を確認(列名、NULL許可の可否、データ型)
DESCRIBE sample_table
-- PROMPT メッセージ出力
PROMPT Hello
-- SPOOL ログ出力
-- パスとファイル名
SPOOL /tmp/result.txt
SELECT * FROM sample;
SPOOL OFF
SPOOL C:\log.txt APPEND -- 上書きせず追記
-- STARTUP インスタンスの起動 ※SYSDBA権限が必須
STARTUP -- STARTUP OPEN状態まで
STARTUP NOMOUNT -- STARTUP NOMOUNT状態まで
-- SHUTDOWN インスタンスを停止
-- ※ログインしているユーザが存在するとSHUTDOWNが行われない
SHUTDOWN
SHUTDOWN IMMEDIATE -- IMMEDIATE(実行中のトランザクションをロールバック)
SHUTDOWN ABORT -- ABORT 強制停止
その他
環境変数 … SQLPLUS起動に使われる変数 ※シェルスクリプト側で記述
export ORACLE_SID=xxx #接続識別子 DB名 ※必須
export ORACLE_BASE=xxx #Oracleパス パスを使い回すための補助用
export ORACLE_HOME=xxx #Oracleインストールディレクトリ ※必須
export PATH=${ORACLE_HOME}/bin:${PATH} #Oracleインストールディレクトリのbin
export NLS_LANG=Japanese_Japan.AL32UTF8 #クライアント表示用文字コード ※LANGと一致させないと文字化けを起こす
OracleDB 表領域作成
--前提sqlplusログイン
CREATE TABLESPACE SAMPLESPACE
DATAFILE 'C:/path/sample.dbf' --パス
SIZE 100M --サイズ
AUTOEXTEND ON --自動拡張 ON OFF
NEXT 1024k MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
ONLINE --表領域を使用可にする 否OFFLINE
COMMIT
スクリプトファイル
SQL*Plus(バッチモード) … バッチファイル(拡張子 : sql)で操作
rem コマンドプロンプトからファイル名を指定してバッチを実行
@c:\sample_file.sql
rem SQL*Plus起動とバッチ実行
rem ファイルがカレントディレクトリの場合はパスは必要ない(あってもよい)
sqlplus sampleuser/samplepassword@orcl @c:\sample_file.sql
rem 引数を指定して実行
@c:\sample_file.sql 100