[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はさまざまですが、通常は次の形式です:https://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回だけ表示されます。trimspoolonに設定 末尾の空白を削除するだけです。
次に、クエリに応じて最後の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を実行する必要があります 期待どおりに作成されたファイル。