SQL Developer Web で Autonomous Database にローカルファイル(xlsx)をロードする

この記事は「Oracle Cloud Infrastructure Advent Calendar 2019 - Adventar」の12月1日の記事として書かれています。
記事の内容は執筆時(2019/12/01)のものであり、現在とは異なる可能性がありますので適宜最新状況をご確認ください。

Autonomous Database へデータをロードする方法はいくつかありますが、一番手っ取り早そうな SQL Developer Web によるロードをご紹介します。
SQL Developer Web は、SQL Developer をご利用されてる方は、SQL Developer のブラウザ版だと思って頂ければ、理解が早いです。
ブラウザ環境さえあれば、SQLの実行が可能になり、Autonomous Database では、プロビジョニング直後から利用可能です。
もちろん Always Free で作成した Autonomous Database でも利用可能です。

前置き

本記事では、Autonomous Database 自体の作成やSQL Developer Web の接続方法は含みません。
SQL Developer Web で Autonomous Database 上の既存表へエクセルファイル(xlsx)をロードするために、必要なファイルと表の準備から紹介しています。

まずはマニュアル

読まなくても直感で使えますが、念のため本記事で紹介する機能のマニュアルを置いておきます。

マニュアルは、ADW/ATP で分かれてますが、"Load Data from Local Files with SQL Developer Web" という章でどちらも内容は同じです。

Using Oracle Autonomous Data Warehouse
docs.oracle.com

Using Oracle Autonomous Transaction Processing
docs.oracle.com

ロードするデータの準備

今回は、日本オラクルの事業所一覧を元に、データを作成しました。
www.oracle.com

下記のタブ区切り文字列をコピー、Excelに貼りつけて保存してください。
私は、日本オラクル事業所一覧.xlsxという名前で保存しました。

事業所名	郵便番号	所在地	電話番号
本 社	107-0061	東京都港区北青山2-5-8 オラクル青山センター	03-6834-6666
北海道オフィス	060-0001	札幌市中央区北一条西4-1-2 武田りそなビル 6F	011-252-6500
東北オフィス	980-0014	宮城県仙台市青葉区本町1-1-1 大樹生命仙台本町ビル 18F	022-212-3303
東海オフィス	453-6111	愛知県名古屋市中村区平池町4-60-12 グローバルゲート名古屋 11F	052-551-7511
北陸オフィス	920-0901	石川県金沢市彦三町1-2-1 アソルティ金沢彦三 1F リージャス金沢駅東センター
関西オフィス	530-0003	大阪府大阪市北区堂島2-4-27 新藤田ビル 9F	06-6442-6777
中国・四国オフィス	730-0051	広島市中区大手町2-8-1 大手町スクエア 8F	082-249-3371
九州オフィス	810-0001	福岡県福岡市中央区天神1-12-7 福岡ダイヤモンドビル 8F	092-736-0150
沖縄オフィス	900-0033	沖縄県那覇市久米2-3-15 COI那覇ビル 5F リージャス COI那覇ビルセンター	098-916-8353
赤坂オフィス	107-0051	東京都港区元赤坂1-3-13 赤坂センタービルディング	03-6834-6666
豊田オフィス	471-0833	愛知県豊田市山之手4-46 三井住友海上豊田ビル5F	0565-74-1600
トレーニングキャンパス大阪	530-0003	大阪府大阪市北区堂島2-4-27 新藤田ビル	06-6442-6172
トレーニングキャンパス赤坂	107-0051	東京都港区元赤坂1-3-13 赤坂センタービルディング12F	0120-155-092

北陸オフィスには、オフィス用の電話番号はないのですね。
例では、日本オラクル事業所一覧.xlsxという名前で保存しました。

f:id:tzm1001:20191201022059p:plain
日本オラクル事業所一覧.xlsx

ロード対象の表を準備

今回は初めてのデータ投入なので、OCJ_Officeという表を作成します。

CREATE TABLE OCJ_Office(
    OfficeName varchar2(60),
    ZipCode varchar2(8),
    Address varchar2(120),
    OfficeTEL varchar2(12)
);

f:id:tzm1001:20191201034239p:plain

SQL Developer であれば、新規表もロード時に作成できますが、SQL Developer Web ではロード先の表を事前に作成しておく必要があります。

SQL Developer Web でローカルファイル(xlsx)をロード

準備したデータと表を使って SQL Developer Web で Autonomous Database にロードしていきます。
表を決めて、ファイルの選んで、表とファイルの列を結びつけておしまいです。

  • ロードしたい表を右クリックしてデータをアップロードを選択

f:id:tzm1001:20191201034242p:plain

  • インポートウィザードがブラウザ内に開く

f:id:tzm1001:20191201034245p:plain

  • ロードしたいデータが入ったファイルを指定するとプレビュー画面へ

f:id:tzm1001:20191201034212p:plain

  • ⚙を押すとスキップする行など選択も可能

f:id:tzm1001:20191201034215p:plain

  • 表のどの列にファイルのどの列を対応させるか選択

f:id:tzm1001:20191201034218p:plain

  • 1つ1つやるのは、面倒なので、⚙を押して、位置を選択

f:id:tzm1001:20191201034222p:plain

f:id:tzm1001:20191201034225p:plain

  • 確認画面で良ければ、終了を教えてジョブ実行

f:id:tzm1001:20191201034228p:plain

  • この画面は実行されたことがわかるだけなので、OK押しましょう。

f:id:tzm1001:20191201034232p:plain

  • フッターに完了した旨通知されます。

f:id:tzm1001:20191201035705p:plain

  • SELECT するとデータが入っているのが確認できます。日本語もできてますね。
SELECT * FROM OCJ_Office;

f:id:tzm1001:20191201034235p:plain


まとめ

今回は、XLSLを使いましたが、その他にも CSV、XLS、TSV、TXTが利用できます。
非常に簡単なので軽量なワークシートをとりあえず放り込むには、この方法も選択肢になるのかなと思います。
Autonomous Database は、周辺機能も含めて日々進化しているので、SQL Developer 同様に、ロード時に新規に表も作ってくれるエンハンスに期待したいですね。

今日(今年?)は、以上です。