*[[Oracleメモ]] > SQL*Plus(Oracle) [#pe113dfd]
#setlinebreak(on);

**''SQL*Plusとは'' [#s863c672]
 SQL*Plusは、データベース(Oracle)へSQLの発行、問い合わせ用を行う為の対話ツール。(もちろんPL/SQLも実行できる)
 SQL*Plus でしか利用できない便利なコマンドが用意されている。
 ※ 旧ライセンス形式では SQL*Plus の使用の用途が制限されている場合があるので要注意。

**データベースへの接続 [#f7a76936]
local 接続ネーミングメソッド
 sqlplus username/password@net_service_name

簡易接続ネーミングメソッド
 sqlplus username/password@[//]host[:port][/service_name]

&aname(sqlplus_cmd);
**SQL*PLUSのコマンド [#sc095f27]
※参照 : http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html [#n8afc52a]

|SQLPlus コマンド|コマンド 説明|h
|@|ファイルの内容を実行(詳細は START 参照)|
|@@|~|
|@?|~|
|n|カレント行を n にする|
|/|バッファ内のSQL、PL/SQLブロックを実行(SQL バッファ非表示)|
|ACCEPT|ACCEPT vData PROMPT ' vDataを入力する。'|
|APPEND|行末にテキストを追加|
|ARCHIVE LOG|アーカイブログ運用の設定と状態表示|
|ATTRIBUTE|オブジェクト型列の表示書式を設定|
|BREAK||
|BTITLE|下部に指定のタイトルの書式設定|
|CHANGE|SQL バッファの文字を置換|
|CLEAR|画面、バッファ、書式、タイマーの設定などの初期化|
|COLUMN|カラムの書式指定(書式モデル)|
|COMPUTE||
|CONNECT|データベースへの接続|
|COPY|下位互換用|
|DEFINE|ユーザー定義定数の設定と表示|
|DEL|SQL バッファの一部を削除|
|DESCRIBE|スキーマオブジェクトの仕様を表示|
|DISCONNECT|データベースから切断|
|ED[IT]|ホストのエディタを使用した編集|
|EXECUTE|PL/SQL ブロックの実行|
|EXIT|SQL*Plus の終了|
|GET|ファイルの内容をSQLバッファに読み込む|
|HELP|オンライン・コマンドヘルプ|
|HOST|シェルでコマンドの実行|
|INPUT|文字列の追加(単独の場合には複数行追加可能)|
|LIST|SQL バッファ内を表示|
|PASSWORD|パスワードの変更|
|PAUSE|処理の一時停止|
|PRINT|バインド変数の内容を表示する|
|PROMPT|メッセージの表示|
|RECOVER|データベースのリカバリー|
|REMARK|コメント行|
|REPFOOTER||
|REPHEADER||
|QUIT|EXIT コマンドのエイリアス|
|RUN|バッファ内SQL、PL/SQLブロックを表示し実行|
|SAVE|SQLバッファの内容をファイルに保存|
|[[SET>#sqlplus_vars]]|システム変数を設定する|
|SHOW|メモリ、システム変数、初期化パラメータなどの表示|
|SHUTDOWN|オラクルの停止|
|SPOOL|出力結果をファイルへ出力の開始と終了|
|START|ファイルの内容を実行|
|STARTUP|オラクルの起動|
|STORE||
|TIMING|タイマーの設定、表示と解除|
|TTITLE|上部に指定のタイトルの書式設定|
|UNDEFINE|ユーザー定義定数の削除|
|VARIABLE|バインド変数 の定義|
|WHENEVER OSERROR|OS レベルのエラー発生時の例外処理|
|WHENEVER SQLERROR|SQL レベルのエラー発生時の例外処理|

         ※たくさんあるが、よく使うのは ED , SET ぐらい~

&aname(sqlplus_vars);
**''SQL*Plus のシステム変数''~ [#i676bb42]
  ※システム変数は SQL*Plus コマンドの ''SET システム変数 値'' という形式で設定する。~
   ( [[SQL*PLUS起動時に自動的に環境設定する方法]]もある。 )~
|コマンド|説明|h
|SET APPINFO|スクリプトの進行状況などを設定|
|SET ARRAYSIZE|DBMS_OUTPUT のバッファ、データベースから一度にフェッチする配列の大きさ|
|SET AUTOCOMMIT|オートコミットの有効/無効|
|SET AUTOPRINT|バインド変数 の自動表示|
|SET AUTORECOVERY|RECOVERY コマンドのアーカイブログファイル名を自動補完する/しない|
|SET AUTOTRACE|オートトレースの有効/無効、または、トレースモードの設定|
|SET BLOCKTERMINATOR|PL/SQL ブロックの終了文字の設定|
|SET CMDSEP|SQL*Plus コマンドの区切り文字|
|SET COLSEP|カラムとカラムの間の区切り文字|
|SET COMPATIBILITY|Oracle 8 以前向けの下位互換動作用|
|SET CONCAT|後続に文字連結するときの置換変数の終了文字の設定|
|SET COPYCOMMIT|COPY コマンドのコミットポイント設定|
|SET COPYTYPECHECK|COPY コマンドの型チェックの有効/無効|
|SET DEFINE|置換変数を有効/無効または接頭辞を設定|
|SET DESCRIBE|DESCRIBE コマンド の表示方法の調整|
|SET ECHO|スクリプトのSQL*Plusコマンドを表示をする/しない|
|SET EDITFILE|EDIT コマンド で使用する一時ファイル名の設定|
|~|エディタプログラムの指定は _EDITOR 事前定義変数|
|SET EMBEDDED|異なるレポート(SQL)でも同一ページ含める/含めない|
|SET ESCAPE|エスケープ機能を有効/無効、または、別のエスケープ文字を設定|
|SET FEEDBACK|問い合わせの結果の件数を表示をする/しない、または、表示する最小件数の設定|
|SET FLAGGER|SQL が SQL92 に準拠しているか調べる/調べないを設定|
|SET FLUSH|画面出力にバッファを使用する/しないの設定|
|SET HEADING|列ヘッダを表示する/しない|
|SET HEADSEP|列ヘッダの区切り文字の設定|
|SET INSTANCE|デフォルトのインスタンスの設定|
|SET LINESIZE|1行に表示する(文字数)バイト数の設定|
|SET LOBOFFSET|CLOB、NCLOBの取り出し開始位置の設定|
|SET LOGSOURCE|RECOVERY コマンドで使用するアーカイブログファイル位置の設定|
|SET LONG|LONG、CLOB、NCLOB の表示幅|
|SET LONGCHUNKSIZE|LONG、CLOB、NCLOBのチャンクサイズ|
|SET MARKUP|出力をHTML 形式にエンコードをする/しないの設定(SQL*Plusの場合)|
|SET NEWPAGE|ページの開始位置から列ヘッダーまでの余白行数の設定|
|SET NULL|NULL データの代替文字列設定|
|SET NUMFORMAT|数値のデフォルト書式の設定(書式モデル)|
|SET NUMWIDTH|数値のデフォルト表示幅|
|SET PAGESIZE|1ページの行数|
|SET PAUSE|1ページ毎に一時停止をする/しない|
|SET RECSEP|レコードセパレータを常に出力する/しない、または、折り返しが発生時のみ出力する|
|SET RECSEPCHAR|RECSEP が発生したときに表示される文字の設定|
|SET SERVEROUTPUT|標準出力に表示する/しない、または、バッファの上限サイズ|
|SET SHIFTINOUT|シフト文字を表示する/しない(特殊なコンソールのみ)|
|SET SHOWMODE|システム変数の変更前値の通知を表示する/しない|
|SET SQLBLANKLINES|SQL コマンド、PL/SQL ブロックに空白行を許可する/しない|
|SET SQLCASE|すべての入力文字を大文字、または、小文字に変換する/しない|
|SET SQLCONTINUE|複数行の SQL*Plusコマンド入力時のプロンプトの設定|
|SET SQLNUMBER|複数行の SQL コマンド、PL/SQL ブロック入力時に表示される行番号を表示する/しない|
|SET SQLPLUSCOMPATIBILITY|動作保証できる SQL*Plus のバージョンの設定|
|SET SQLPREFIX|SQL*Plus コマンドの接頭辞の設定|
|SET SQLPROMPT|SQL*Plus のコマンドプロンプトに表示される文字列の設定|
|SET SQLTERMINATOR|SQL コマンド、PL/SQL ブロックの終了文字の設定|
|SET SUFFIX|スクリプトファイルのデフォルト拡張子の設定|
|SET TAB|タブ文字の使用をする/しない|
|SET TERMOUT|@、@@、START のスクリプトによるアウトプットを表示する/しない|
|SET TIME|SQL プロンプトに時刻表示する/しない|
|SET TIMING|タイミング統計(タイマー)を表示する/しない|
|SET TRIMOUT|各行の出力の終わりから行末までの空白を出力する/しない(スプールには無関係)|
|SET TRIMSPOOL|スプールにおける TRIMOUT システム変数(画面出力には無関係)|
|SET UNDERLINE|列ヘッダの下の表示される -----… 文字のあり/なし/文字の設定|
|SET VERIFY|置換変数に設定する前後の状態を表示する/しない|
|SET WRAP|表示幅に収まらない部分を折り返す/切り捨てる|

**''SQL*PLUS起動時に良く使う設定を自動的に読み込む'' [#o88723a3]
 (1)SQL*PLUSへのショートカットを作成する
 (2)ショートカットの作業フォルダを自分のMyDocument等に変更する
 (3)(2)で設定した作業フォルダに、下記のようなSQL*Plusのコマンドが書かれたファイルを login.sql という名前で作成する
 SET LINESIZE 200
 SET SERVEROUTPUT ON SIZE 1000000
 SET SQLPROMPT "&_USER.@&_CONNECT_IDENTIFIER>"

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS