資格証明の作成および既存表へのJSONデータのコピー
DBMS_CLOUD.COPY_DATA
を使用して、クラウド内のJSONデータを表にロードします。
この例のソース・ファイルはJSONデータ・ファイルです。
- プロシージャ
DBMS_CLOUD.CREATE_CREDENTIAL
を使用してオブジェクト・ストアの資格証明を保存します。たとえば:SET DEFINE OFF BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
( credential_name => 'DEF_CRED_NAME', username => 'adb_user@example.com', password => 'password' ); END; /この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。資格証明を格納した後は、すべてのデータ・ロードで同じ資格証明名を使用できます。
パラメータの詳細は、CREATE_CREDENTIALプロシージャを参照してください。
リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructure Object Storeにアクセスするための資格証明を作成する必要はありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。
DBMS_CLOUD.COPY_DATA
プロシージャを使用して、既存の表にJSONデータをロードします。たとえば、次のとおりです。
CREATE TABLE WEATHER2 (WEATHER_STATION_ID VARCHAR2(20), WEATHER_STATION_NAME VARCHAR2(50)); / BEGIN
DBMS_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プロシージャを参照してください。
-