Autonomous Database の Database Actions（SQL Developer Web）へのアクセスと、CSVファイルのロード

過去にいくつかSQL Developer Webを使った記事を書いたものの、やり方が更新されているのに記事が古いままだったので、今更ですが、今のやり方（Database Actionsから）を、ここに記載したいと思います。

※SQL Developer Webで何が出来るかは、過去記事を参照ください。
[「Oracle Cloud Infrastructure の Autonomous Databaseで使える SQL Developer Web (ブラウザベース) 」の、「SQL実行」や、「データ・モデラーの利用」のあたり](https://qiita.com/mikika/items/c16842e19aed0e1b90d9#sql%E3%82%92%E5%AE%9F%E8%A1%8C)

**Database Actions に統合され、色々と、更に簡単便利になっています。**

- ユーザ作成が簡単
- SQL Developer Webへのアクセスが簡単
    - （必要なPL/SQLを個別に実行するなども、意識せず画面操作で完了するので）
- CSVファイルからのデータロードしてテーブル作成も、ブラウザ操作で簡単

※Autonomous Database は、Oracle Cloud にあるフルマネージドなOracle Databaseです。Always Freeインスタンスとして作成すると、ずっと無料で利用できます。[Always Freeリソース 詳細](https://docs.oracle.com/ja-jp/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm#resources)

# Database Actions（データベース・アクション）の利用

Autonomous Database の管理者ユーザは ADMINですが、本記事では別のユーザを作成した後、データのロードやSQLの実行はそのユーザで実行していきます。

## 管理者(ADMIN)でアクセスし、ユーザ作成

Autonomous Databaseの管理者ユーザは ADMIN です。
まずは ADMINでログインし、別のユーザ（今回は OVAL）を作成します。

Autonomous Database > ツール > データベース・アクション

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/6a21e6d8-9fac-026f-a1e8-ba98ba0ac1f9.png)


ユーザ名を聞かれるので「admin」を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/20f8ac14-8652-3069-910a-57d490d3c2c3.png)

パスワードも聞かれるので入力してサインインすると、この画面に。
「データベース・ユーザー」を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/d15d0373-9a0c-ad67-469d-ee430ae2fd4b.png)

「ユーザの作成」を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/b25da0ee-8ec2-bba6-7099-d4d2ae99e84d.png)

これから作成するユーザの、ユーザ名やパスワードを入力。

- 「Webアクセス」をONに
    - Database Actions（SQL Developer Webもここに含みます）を使いたいので
- 「表領域の割当て制限」に、特定のサイズまたはUNLIMITEDを指定
    - 参照だけではなくこの後データロードしたいので
    - ALTER USER ＜ユーザ名＞ QUOTA UNLIMITED ON DATA の意味 (DATA表領域に（サイズ指定せず無制限に）利用許可））


ほかにも「グラフ」「OML（機械学習）」使いたいので、全部ONにして、「ユーザの作成」を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/229bf7fb-9a4a-b755-db75-6b66e7b5515b.png)


（「ユーザの作成」を押下する前に、「付与されたロール」タブから、どのようなロールが付与されるか確認できる。例えば、Autonomous Databaseでおなじみ(?!)のDWROLEや、今回はグラフで必要なロールも付与されます。スクロールで他のロールも確認可能。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/fa90c3ea-1bb0-c28c-2c9e-a062b62f006b.png)

ユーザ作成が完了した。

- ここでは「OVAL」というユーザを作成した
- ユーザ名右上の‥をクリックすると、属性が編集できる（RESTやグラフを使いたい場合はここで追加作業が必要）


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/fb2963e1-6993-6f56-de3c-6734dce982d6.png)

このあと、Database Actionsからアクセスしたいので、上で「RESTの有効化」を選択、「REST対応ユーザ」を押下。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/e0c30b27-83b3-7adc-f345-5d3afef028a9.png)

## 作成したユーザで、Database Actions にログインする

Database ActionsのURLを確認する方法は2つあり、WalletのREADMEを見るか、ADMINで画面から確認するか。ここでは後者で。

本記事の一番初めの画面で、「Database Actions」を押下した先のURLが、ログインするためのURL。
（こういう感じになっている）

`https://<固有名>.adb.us-phoenix-1.oraclecloudapps.com/ords/sql-developer`


アクセスして先ほど作成したユーザ名（OVAL）を入力し、次の画面で再度ユーザ名とパスワード入力し、サインイン

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/32225e4e-ae8f-6048-71d3-436459d97b2a.png)

作成したユーザ（ここでは OVAL）で、ログイン完了。

- ユーザ名は右上に表示
- SQL：SQL Developer Webはここから
- データ・ロード：CSVファイルからデータを簡単にロードできる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/cf5062cc-5e24-7836-10e2-d3c261a6f5d2.png)

## CSVファイルをロードして、テーブルを作成

上で「データロード」押下したところ

デフォルトで「データのロード」「ローカル・ファイル」が選択されているので「次へ」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/b24be0f1-5f3c-1a36-0f35-5a3f65920557.png)

ローカル（手元のPC）にある、CSVファイルを、drag & drop または ファイルの選択から選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/4d4321b7-6ea4-a83b-7ebc-958e28cc711e.png)

ここでは customer.csv というファイルを選択。内容は以下。

```:customer.csv
id, name, e-mail
1,山田太郎,yamada@abc.com
2,佐藤花子,hanako@xyz.com
```


実行ボタン（緑の三角）で、ロードできる。
ロードする前にどういう設定になっているか確認するには、編集ボタン（鉛筆）を押下。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/f9980a6d-b056-4c09-6132-563b7ac77606.png)

customer.csv (80 bytes)ファイルから、表の名前は「CUSTOMER」で。
列名は1行目から自動的にid, name, e-mail列が設定されている（画面切れてますが）。
データ型はデフォルトでNUMBERやVARCHAR2が自動で選択されている（必要に応じて変更する）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/0cf51671-3861-c7fd-768f-962769d4c7aa.png)


実行ボタン（緑の三角）押下し、データロード実行後の画面。
ソース「customer.csv」から、ターゲット「CUSTOMER」表へのロードが、無事に完了している。
右下の「完了」を押下。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/118b24a2-dda4-2fab-5970-28fe5bc0901a.png)


## SQL Developer Web から、SQL実行（データを確認する）

「SQL」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/cf5062cc-5e24-7836-10e2-d3c261a6f5d2.png)

上部のウィンドゥにSQLを入力し、実行ボタン押下で、結果が下ウィンドウに表示される。
先程の customer.csv の中身がロードできていることが分かる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297987/b9c2e5d9-c219-3859-f2d4-6110dc83d110.png)




# 参考

- [Provide Database Actions Access to Database Users](https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/sql-developer-web.html#GUID-4B404CE3-C832-4089-B37A-ADE1036C7EEA)

- [Oracle Cloud Infrastructure の Autonomous Databaseで使える SQL Developer Web (ブラウザベース)  ](https://qiita.com/mikika/items/c16842e19aed0e1b90d9)

- [はじめてのAutonomous Databaseへのデータロード（Object Storage経由の場合）](https://qiita.com/mikika/items/5323651cb5826a5b495e)
    - 今回のようなGUI操作ではなく、スクリプトベースでデータロードする場合のやり方です