はじめに
Oracle APEXでは開発画面でExcelなどのファイルをアップロードして、そこから簡易的なアプリを作ることができます。そのファイルのアップロードをアプリ上で行い、既存の表データを更新する方法についてまとめました。
手順
-
あらかじめExcelファイルやcsvファイルなどを用いて、アプリケーションを作成します。この手順は割愛します。
-
デフォルトでは、Oracle APEXの開発画面からcsvファイルなどをアップロードしてアプリケーションを作成すると、レポートや検索ページなどが自動で作成されます。ここに追加する形で、ファイルのアップロードするページを追加します。
-
[LOV]→[データ・ロード定義]から、データ・ロードする際の表の定義を設定します。こちらを設定しないとこの後行うデータ・ロードするページ作成の手順が進みません。
-
[ターゲット]から、表名を選択します。今回は既存のTASKS表とします。
-
[設定]から、ロード・メソッドを選択します。[置換]を選択すると、表をロードした際に、既存の表を更新し、置き換えることができます。[追加]を選んでしまうと、表をロードするごとに、既存の表のデータが追加されていってしまいます。
-
[変更の適用]を押し、定義を作成します。
-
つぎに、アプリケーションにデータ・ロードをするページを作成します。
-
アプリケーションのトップに戻り、[ページの追加]をクリックします。
-
ページの詳細を設定します。[ページ名]を[data load]、[ページ・モード]は[標準]にします。
-
[データ・ロード]では、先ほど作成したデータ・ロード定義である[load]が選択できるようになっています。これを定義しないとページ作成の工程がこれ以上先に進めません。
-
[データのアップロード先]を[ファイル]とします。
-
ページが作成できると、作成したページのページ・デザイナに遷移します。画面左のレンダリング・ツリーから[LOAD]ボタンを、下記のように選択します。
-
画面右側において、LOADボタンの設定をします。
-
確認の要求のトグルをONにします。
-
画面右上の保存と実行ボタンをクリックし、アプリケーションの外観を確認します。
-
選択すると、下記のような画面になり、どのようなデータをロードするか確認できます。今回は、パイロット用のワークスペースの担当者を田中節子から鈴木節子に変更してある更新用の表をロードしてみます。
-
このアプリケーションを作成する際にあらかじめ作成されていた対話モードレポートページを見てみます。パイロット用のワークスペースの担当者を田中節子から鈴木節子に変更できていることがわかります。
-
元のデータは73行ですが、レポート下部から50行目から先を確認します。新しい更新用のデータをロードした後も元の表に追加する形ではなく、73行のまま変更したデータのみ更新できていることが確認できます。