「資格証明の作成および」既存の表へのJSONデータのコピー
DBMS_CLOUD.COPY_DATAを使用して、クラウド内のJSONデータを表にロードします。
この例のソース・ファイルはJSONデータ・ファイルです。
- プロシージャ
DBMS_CLOUD.CREATE_CREDENTIALを使用してオブジェクト・ストアの資格証明を保存します。 たとえば:SET DEFINE OFF BEGINDBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@example.com', password => 'password' ); END; /この操作では、資格証明がデータベースに暗号化された形式で保存されます。 資格証明名には任意の名前を使用できます。 このステップは、オブジェクト・ストア資格証明が変更されないかぎり、1回のみ実行すれば済みます。 資格証明を保存したら、すべてのデータ・ロードで同じ資格証明名を使用できます。
パラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
リソース・プリンシパル資格証明を有効にした場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。 詳細については、「リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセス」を参照してください。
- プロシージャ
DBMS_CLOUD.COPY_DATAを使用して、既存の表にJSONデータをロードします。たとえば:
CREATE TABLE WEATHER2 (WEATHER_STATION_ID VARCHAR2(20), WEATHER_STATION_NAME VARCHAR2(50)); / BEGINDBMS_CLOUD.COPY_DATA( table_name => 'WEATHER2', credential_name => 'DEF_CRED_NAME', file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/jsonfiles*', format => JSON_OBJECT('type' value 'json', 'columnpath' value '["$.WEATHER_STATION_ID", "$.WEATHER_STATION_NAME"]') ); END; /パラメータは次のとおりです:
-
table_name: ターゲット表名です。 -
credential_name: 前のステップで作成した資格証明の名前です。 -
file_uri_list: ロードするソース・ファイルのカンマ区切りリストです。 URIのファイル名にワイルドカードを使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は1文字のワイルドカードとして使用できます。 -
format: JSONデータを使用したDBMS_CLOUD.COPY_DATAの場合、typeはjsonです。 他のフォーマット値を指定して、JSONソース・ファイルのフォーマットを説明するオプションを定義します。 詳細については、「DBMS_CLOUDパッケージ・フォーマット・オプション」を参照してください。
この例では、
namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。パラメータの詳細は、「COPY_DATAプロシージャ」を参照してください。
-