[SQL Plus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm)は、最新のOracleインストールすべてにインストールされるインタラクティブなツールです。 SQL さらに、Oracleの通常の範囲を超えたバッチ、スクリプト、および計算を使用して、標準のデータベースクエリを超えることができます。
以下で説明するように、.csv
などのテキストファイルを生成することも可能です。 、特定のデータベースクエリの出力を使用します。
SQL*Plusの起動
Oracleのインストールによっては、SQL*Plusアプリケーションを実行するためのさまざまなバージョンまたは「モード」の1つにアクセスできる場合があります。
SQL*Plusコマンドライン
SQL*Plus Command-line
を使用する場合 、sqlplus
を発行するだけです シェルからのコマンド:
$ sqlplus
これにより、デフォルトに接続しようとします データベースを使用すると、自分自身を認証するための資格情報を入力するよう求められます。
別のdatabase
に接続する必要がある場合 または別のuser
を使用します (schema
)、必要に応じて独自の値を置き換えて、次のことを試してください。
$ sqlplus schema@//machine.domain:port/database
iSQL * Plus
アクセスできる場合は、iSQL*Plus
を使用することをお勧めします 、これはSQL*Plusコマンドラインツールのブラウザベースのバージョンです。
これは、iSQL*Plus URL
にアクセスするだけで実行できます。 データベースとインストール用。正確なURLはさまざまですが、通常は次の形式です:http://machine_name.domain:port/isqlplus
SQL * Plus for Windows
Windowsを使用している場合は、SQL *PlusのWindowsGUIバージョンもあります。これは通常、スタートメニューから起動できます。Start > Programs > Oracle > Application Development > SQL Plus
。
SQL * Plusに接続したので、ファイルの作成を開始できます。
SQL*Plus構成の変更
最初のステップは、SET
を使用してSQL*PLusシステム設定を構成することです。 ステートメント。
この例では、クエリとファイルを生成する前に、これらの設定を1回手動で変更しますが、必要に応じて、User Profile
でさまざまな設定のデフォルトを変更できます。 、login.sql
にあります ファイル。
set colsep ,
set headsep off
set pagesize 0
set trimspool on
通常は変更したくない最初のいくつかの設定ですが、それぞれが何を達成するかを簡単に説明します。
-
colsep
列を分割するために使用される区切り文字です。.csv
の場合 ファイル、これは単純なコンマです。 -
headsep
ヘッダー行の区切り文字です(必要な場合)。この例では、ヘッダー行を出力していないため、このoff
のままにします。 。 pagesize
「1ページあたり」の行数です。これは少し古風な設定で、1ページあたりの行数が多すぎずに印刷することを目的としています。0
の値 、ファイルに出力しているため、ページは使用しません。header
を表示することを選択した場合 行、pagesize
を設定します 非常に大きな数(クエリで予想されるレコード結果の数よりも大きい)になるため、ヘッダー行は「ページごと」に1回ではなく、1回だけ表示されます。trimspool
on
に設定 末尾の空白を削除するだけです。
次に、クエリに応じて最後の2つの設定を変更する必要があります。
set linesize #
set numwidth #
-
linesize
の場合 、#
値は、結果のクエリの出力列の総数である必要があります。 -
numwidth
数値を出力するときに使用される列幅(文字スペースの数)です。
注:SPOOL
コマンドは使用できません ブラウザベースのSQL*Plusバージョンでは、iSQL*Plus
。 iSQL * Plusの使用中にファイルを生成するには、ファイルに直接出力するように必要な設定を変更します。
設定が完了したら、SQL*Plusにファイルを出力するように指示する必要があります。これは、SPOOL
を使用して実行されます ステートメント。
SPOOL
アクティブ 、SQL * PLusは、クエリの出力を指定されたファイルに保存します。
したがって、次に入力するコマンドはspool
です。 :
spool file_path
少し先にスキップ、後 クエリが挿入されたら、spool
も停止する必要があります したがって、ファイル出力はspool off
を使用して閉じられます コマンド:
spool off
設定を変更してspool
した後の最後のステップ 実行中はクエリを挿入することです。簡単な例では、books
からすべての本を出力しています。 テーブル。
SELECT
title,
primary_author
FROM
books;
クエリステートメントを閉じるためのセミコロンを忘れないでください。次に、前述のspool off
を入力してください。 コマンド。
これで、SQL*Plusを使用したクエリの結果を含む新しいテキストファイルが生成されました。
ヒント:スクリプトファイルの使用
すべての行を手動で入力するのではなく、SQL*Plusで1つのコマンドで実行できる新しいスクリプトファイルにすべての設定を入力することをお勧めします。
EDIT
を使用して新しいスクリプトファイルを作成します ステートメント:
EDIT file_name
次に、スクリプトコマンドリスト全体を新しいファイルに貼り付けて保存します。サンプルスクリプトの全内容は以下にあります。
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
スクリプトを実行するには、@
を使用するだけです。 記号の後にファイル名が続く:
@file_name
スクリプトを実行し、.csv
を実行する必要があります 期待どおりに作成されたファイル。