SQL Developerとは
「SQL Developer」は、Oracle社が提供している、Oracle Datbase向けのデータベース開発ツールです。
GUIでテーブルの作成などのデータベースの管理を行なったり、SQLの実行、データのインポート/エクスポートやPL/SQLの開発をしたりできます。「SQL Developer」は、SQL*Plusのような「コマンドラインベース」のツールが苦手な人に向いており、Oracleデータベースの学習にも役立つツールです。
この記事では、Oracle社が提供する「SQL Developer」を使って、CSVやExcelなどのデータを、エクスポート/インポートする方法を解説していきます。
SQL Developer使ったことがない方や、まだインストールしていない方は、以下の記事を参考にインストールおよび初期設定を行なってください。
【関連記事】
▶SQL Developerのインストールからデータベースに接続する方法を解説
テーブルデータをエクスポートする
まず最初は、Oracle Databaseのテーブルデータをエクスポートする方法を解説します。
テーブルデータのエクスポートは、[接続ツリー]からエクスポートしたいテーブルの上で[右クリック]→[エクスポート]を選択します。
エクスポート画面が立ち上がり、ウィザード形式でテーブルデータのエクスポートが行えます。最初の画面では、エクスポートするフォーマット(ファイルの拡張子)や、エクスポート先のファイルパスを指定します。
SQL Developerでは、エクスポート時のフォーマット(ファイルの拡張子)には、次の形式をサポートしています。
- CSV
- XML
- Text
- HTML
- XLS(XLSX)
- SQL Insert Statements
- SQL*Loader Syntax
- PDF:SQL Developer 3.0 以降
フォーマット、エクスポート先のパスを指定したら[次へ]をクリックして、データの指定画面を表示します。
この画面では、出力するカラムや、抽出条件を設定します。
以下の例では、USERSテーブルの全カラムを出力し、AGE(年齢)が20才以上のレコードのみを抽出するように条件を指定しています。
エクスポートのサマリーでは、データベースの接続先や、出力元のテーブルなど、エクスポートに関する設定を最終確認します。問題なければ、[終了]ボタンをクリックしてエクスポートを開始します。
SQLの結果をエクスポート
SELECT文などで検索したSQLの実行結果データを、各種ファイル形式にエクスポートできます。SQL実行結果のエクスポートも、基本的にはテーブルデータのエクスポートと手順は同じです。
SQLの実行結果をエクスポートするには、検索結果が表示されているエリアで[右クリック]→[エクスポート]を選択 します。
エクスポート画面が立ち上がり、ウィザード形式でテーブルデータのエクスポートが行えます。フォーマット(ファイルの拡張子)や、エクスポート先のファイルパスを指定します。
エクスポート時のフォーマットや便利オプション
前述の通り、SQL Developerはエクスポート時にさまざまなフォーマット(ファイルの拡張子)を指定できます。また、出力先をファイルではなく、クリップボードに変更したりもできます。
ここからは、各フォーマットで指定できる便利なオプションや、出力されるファイル内容について解説していきます。
CSV(カンマ区切りのファイル)
CSV(Comma Separated Value)は、データをやり取りする時に頻繁に使われるファイル形式です。データベースの各項目をカンマで区切ったシンプルなテキスト形式でエクスポートできます。
CSV形式でエクスポートする際に指定できるオプションは次の通りです。
オプション | 説明 |
---|---|
ヘッダー | チェックをONにすると、1行目にカラム名のヘッダーが出力されます。 |
左囲み/右囲み | varchar2/charなどの文字列型データの前後につける、囲み文字を指定します。 |
デメリタ | カンマ(固定) |
エンコーディング | UTF8、MS932(Shift-JIS)などの文字エンコーディングを指定します。 CSVをExcelなどで開く場合は「MS932(Shift-JIS)」を指定しましょう。 |
行の終了文字 | 改行時の文字を指定します。 |
CSV形式でエクスポートすると、次のようなファイルが出力されます。
"USER_NAME","AGE","ADDRESS"
"山田太郎",60,"TOKYO"
"山田次郎",40,"NAGOYA"
"山田三郎",20,"OSAKA"
Text(タブ区切りのファイル)
Textはデータベースの各項目をTABで区切ったテキスト形式でエクスポートできます。タブ区切りのファイルはTSV(Tab Separated Values)とも呼ばれます。
Text形式でエクスポートする際に指定できるオプションは、デメリタがタブになること以外を除いて、CSVと同じエクスポートオプションが指定できます。
Text形式でエクスポートすると、次のようなファイルが出力されます。(少し分かりづらいですが、項目間がタブ(TAB)文字で区切られています)
"USER_NAME" "AGE" "ADDRESS"
"山田太郎" 60 "TOKYO"
"山田次郎" 40 "NAGOYA"
"山田三郎" 20 "OSAKA"
XLS(Excel形式のファイル)
SQL Developerは、Excel形式でのエクスポートもサポートしています。
加工がしやすいExcel形式でエクスポートすれば、見栄えを整えて印刷したり、エクスポートしたデータを加工して再度QL Developerでインポートしたりすることもできます。
Excel形式でエクスポートする際に指定できるオプションは次の通りです。
オプション | 説明 |
---|---|
ヘッダー | チェックをONにすると、1行目にカラム名のヘッダーが出力されます。 |
データ・ワークシート名 | データを出力するシート名を指定します。 |
エンコーディング | UTF8、MS932(Shift-JIS)などの文字エンコーディングを指定します。 Excelファイルでは基本的には「MS932(Shift-JIS)」を指定しましょう。 |
Excel形式でエクスポートすると、次のようなファイルが出力されます。
SQL*Loader Syntax(SQL*LOADERの制御ファイル)
SQL*LOADERでデータをインポートする為に必要な制御ファイル、データファイルを出力できます。SQL*LOADERの制御ファイルは、1から手動で作成するのは大変ですが、SQL Developerのエクスポート機能を使って出力すれば、簡単にそのテーブルのSQL*Loader 制御ファイルが作成できて便利です。
SQL*Loader形式でエクスポートすると、次のような制御ファイルが出力されます。
OPTIONS (ERRORS=1000)
LOAD DATA
INFILE 'C:\Temp\TABLE_EXPORT_DATA.ldr' "str '{EOL}'"
APPEND
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE "BS_EMPLOYEE"
FIELDS TERMINATED BY' '
OPTIONALLY ENCLOSED BY '"' AND '"'
TRAILING NULLCOLS (
"USER_ID" ,
"EMPLOYEE_NUMBER" CHAR (15),
"DEPARTMENT_ID" ,
"ROLE_ID" ,
"COMPANY_ID" )
まとめ
SQL Developerでデータをエクスポートする方法を解説してきました。SQL Developerはプログラム開発者やシステム管理者向けのツールですが、エンドユーザーでも任意の条件でデータをエクスポートしたい場合は、SQL Developerを使うことで簡単に実現が可能になります。