このトピックでは、Rスクリプトを作成および管理するためのPL/SQLプロシージャとOracle Databaseデータ・ディクショナリ・ビューを紹介します。
埋込みRの実行用のSQL APIの関数は、Oracle R EnterpriseのRスクリプト・リポジトリに格納されている名前付きのスクリプトを引数として必要とします。PL/SQLプロシージャsys.rqScriptCreate
およびsys.rqScriptDrop
は、スクリプトを作成および削除します。スクリプトを作成する場合やOracle R EnterpriseのRスクリプト・リポジトリから削除する場合は、RQADMINロールが必要です。
sys.rqScriptCreate
関数を使用する場合、スクリプトの名前と、1つのR関数定義を含むR関数スクリプトを指定する必要があります。関数sys.rqScriptCreate
およびsys.rqScriptDrop
のコールは、BEGIN-END
PL/SQLブロックでラップする必要があります。Rスクリプト・リポジトリには、R関数がキャラクタ・ラージ・オブジェクト(CLOB
)として格納されるため、関数定義を一重引用符で囲んで文字列として指定する必要があります。
スクリプトの所有者は、rqGrant
プロシージャを使用してスクリプトへの読取りアクセス権を別のユーザーに付与したり、rqRevoke
プロシージャを使用して権限を取り消すことができます。別のユーザーによってアクセス権を付与されたスクリプトを使用するには、次のように、スクリプトの名前の前に所有者の名前とピリオドを付加して、所有者を指定する必要があります。
select * from table(rqEval(NULL, 'select 1 x from dual', 'owner_name.script_name'));
パブリック・スクリプトやユーザーが所有しているスクリプトには、所有者の接頭辞は必要ありません。
次の各表は、Oracle R EnterpriseのRスクリプト・リポジトリ内のスクリプトを管理するためのPL/SQLプロシージャと、スクリプトに関する情報を格納するデータ・ディクショナリ・ビューのリストです。
表6-3 スクリプトを管理するためのPL/SQLプロシージャ
PL/SQLプロシージャ | 説明 |
---|---|
rqGrant |
データストアまたはスクリプトへの読取りアクセス権を付与します。 |
rqRevoke |
データストアまたはスクリプトへの読取りアクセス権を取り消します。 |
sys.rqScriptCreate |
指定されたR関数を、指定された名前でOracle R EnterpriseのRスクリプト・リポジトリに追加します。 |
sys.rqScriptDrop |
指定されたR関数をOracle R EnterpriseのRスクリプト・リポジトリから削除します。 |
表6-4 スクリプトのデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビュー | 説明 |
---|---|
ALL_RQ_SCRIPTS |
現行のユーザーが使用可能な、Oracle R EnterpriseのRスクリプト・リポジトリ内のスクリプトを示します。 |
USER_RQ_SCRIPTS |
現行のユーザーが所有している、Oracle R EnterpriseのRスクリプト・リポジトリ内のスクリプトを示します。 |
USER_RQ_SCRIPT_PRIVS |
現行のユーザーが読取りアクセス権を付与したOracle R EnterpriseのRスクリプト・リポジトリ内のスクリプトおよびアクセス権が付与されたユーザーを示します。 |
SYS.RQ_SCRIPTS |
Oracle R EnterpriseのRスクリプト・リポジトリ内のシステム・スクリプトを示します。 |