これから、バケットの作成、削除、一覧表示の機能を実装します。
バケットの一覧を取得するパイプライン表関数list_bucketsを定義します。コードは以下になります。
実行にはSQLワークショップのSQLスクリプトを使用します。
メニューのSQLワークショップよりSQLスクリプトを実行します。
スクリプト名にlist_bucketsと入力し、本文にPL/SQLコードを貼り付けて、実行をクリックします。
ページ定義の名前はバケット一覧とします。フォーム・ページを含めるをONに変更し、フォーム・ページ名はバケット操作とします。フォーム・ページ・モードとしてモーダル・ダイアログを選択します。
レポートとフォームのページが作成されます。レポートのページを実行してみます。
同様にページ・アイテムP3_COMPARTMENT_IDのデフォルトをG_COMPARTMENT_IDとします。
登録済みのSQLスクリプトの一覧画面より、作成をクリックします。
即時実行をクリックします。
これからバケットの一覧、作成、更新、削除を行うページを作成します。
アプリケーション・ビルダーから作成中のアプリケーションを開き、ページの作成を実行します。
対話モード・レポートをクリックします。
ページ定義の名前はバケット一覧とします。フォーム・ページを含めるをONに変更し、フォーム・ページ名はバケット操作とします。フォーム・ページ・モードとしてモーダル・ダイアログを選択します。
データ・ソースのソース・タイプにSQL問合せを選択し、以下のSELECT文を記述します。
select * from list_buckets
(
p_namespace_name => :G_NAMESPACE_NAME
, p_compartment_id => :G_COMPARTMENT_ID
, p_region => :G_REGION
, p_credential_name => :G_CREDENTIAL_NAME
)
ナビゲーションのブレッドクラムの使用、ナビゲーションの使用はともにONにします。
以上を設定し、次へ進みます。
主キー列1としてID(Varchar2)を選択し、ページの作成を実行します。
レポートとフォームのページが作成されます。レポートのページを実行してみます。
レポートのページが開くことを確認します。
バケットが一覧されるようになったので、続いてバケットの作成/更新/削除を行うためにフォームのページを変更します。
バケット操作のページをページ・デザイナで開き、左ペインでプロセス・ビューを表示します。フォームの処理を行うプロセス - プロセス・フォームバケット操作を選択し、設定を変更します。
ターゲット・タイプをRegion SourceからPL/SQL Codeに変更し、以下のPL/SQLコードを挿入/更新/削除するPL/SQLコードに記述します。失われた更新の防止はOFF、行のロックはNoに変更します。
入力を容易にするため、ネームスペース名とコンパートメントIDについては、置換文字列がデフォルトになるように設定します。
ページ・アイテムP3_NAMESPACEを選択し、デフォルトのタイプをアイテム、アイテムとしてG_NAMESPACE_NAMEを入力します。
実装している操作は、実質的にはバケットの作成と削除です。更新はコード上はありますが、動作の確認ができるような処理は実装していません。
バケットの作成をしてみます。入力するのはNameだけです。ここではtestと入力しています。バケットの作成には不要なページ・アイテムが表示されていますが、対処は省略します。サーバー側の条件などを設定し、非表示するのが望ましい対応でしょう。
作成をクリックします。
バケットが作成されたことを確認できます。
編集アイコンをクリックします。作成したバケットの削除を実行します。
この削除処理を実行しますか。と確認を求められるのでOKをクリックします。
バケットが削除されました。
バケットに日本語を入力するとエラーが発生しますが、これは元々バケット名として使用可能な文字に制限があるためです。OCIのコンソールから日本語のバケットを作ろうとしても同様にエラーになります。ですので、PL/SQL SDKの問題ではありません。
オブジェクトを操作するためのページを作成するため、バケットを作成しておきます。先ほど削除しましたが、再度testというバケットを作成しておきましょう。
バケットの操作については完了しました。
続く