ヘッダーをスキップ
Oracle® Database Provider for DRDAユーザーズ・ガイド
12c リリース1 (12.1.0.2) for Linux x86-64
E98592-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

13 Oracle Database Provider for DRDAにより使用されるPL/SQLパッケージ

この章では、Oracle Database Provider for DRDAによって使用されるPL/SQL APIについて説明します。

この章には、次の項が含まれます。

この2つのパッケージで使用される型マップ値の詳細は、第7章「Oracle Database Provider for DRDAでのデータ型のサポートと変換」を参照してください。

DBMS_DRDAAS_ADMINパッケージ

DBMS_DRDAAS_ADMIN PL/SQLパッケージは、Oracle Database Provider for DRDAユーザーに対してDRDAパッケージ権限を付与します。これには、次の権限が含まれます。

  • DRDAパッケージのバインド

  • DRDAパッケージの削除

  • DRDAパッケージの実行

  • パッケージ値の設定

この項では、次の項目について説明します。

DBMS_DRDAAS_ADMIN権限の定数

次の定数は、GRANT_PRIVILEGEおよびREVOKE_PRIVILEGEプロシージャで使用されます。

ALL_PRIVILEGE

この権限では、アプリケーション・パッケージのすべての権限がクライアントに付与されます。

BIND_PRIVILEGE

この権限では、クライアントがアプリケーション・パッケージをデータベースにバインドまたは再バインドできるようになります。

COPY_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージのコピーを作成し、別の名前を付けることができます(オプションで異なるパッケージ・オプションを指定できます)。

EXECUTE_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージを実行できます。

DROP_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージを削除できます。

SET_PRIVILEGE

この権限では、クライアントが特定のアプリケーション・パッケージ・オプションを設定できます。このマニュアルに記載されているSET_XXXファンクションを参照してください。

GRANT_PRIVILEGE

DRDAパッケージのユーザーに権限を付与します。

構文

PROCEDURE grant_privilege( 
   privilege_grant IN PLS_INTEGER, 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   user_name IN VARCHAR2);

パラメータ

  • privilege_grant (IN)

    付与する権限

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • user_name (IN)

    権限を付与するユーザーID

使用例

begin
   dbms_drdaas_admin.grant_privilege ( DBMS_DRDAAS_ADMIN.ALL_PRIVILEGE, 'ORACLE',
     'MYPACKAGE', 'DRDAUSR1' );
end;

REVOKE_PRIVILEGE

DRDAパッケージのユーザーから権限を取り消します。

構文

PROCEDURE revoke_privilege( 
   privilege_revoke IN PLS_INTEGER, 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   user_name IN VARCHAR2);

パラメータ

  • privilege_revoke (IN)

    取り消す権限

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • user_name (IN)

    権限を取り消すユーザーID

使用例

begin
   dbms_drdaas_admin.revoke_privilege ( DBMS_DRDAAS_ADMIN.ALL_PRIVILEGE, 'ORACLE',
     'MYPACKAGE', 'DRDAUSR1' );
end;

DROP_PACKAGE

package_nameで指定されるパッケージのインスタンスをすべて削除します。

構文

procedure DROP_PACKAGE( 
   collection_id IN VARCHAR2,
   package_name IN VARCHAR2 );

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

使用例

begin
  dbms_drdaas_admin.drop_package(
    'ORACLE', 'MYPACKAGE' );
end;

DROP_PACKAGE_VN

version_nameに基づいてパッケージを削除します。

構文

procedure DROP_PACKAGE_VN( 
   collection_id IN VARCHAR2,
   package_name IN VARCHAR2,
   version_name IN VARCHAR2 DEFAULT NULL );

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • version_name (IN)

    バージョン名

DROP_PACKAGE_CT

consistency_tokenに基づいてパッケージを削除します。

構文

procedure DROP_PACKAGE_CT( 
   collection_id IN VARCHAR2,
   package_name IN VARCHAR2,
   consistency_token IN RAW );

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • consistency_token (IN)

    整合性トークン

SET_PROFILE

DRDAパッケージのSQL翻訳プロファイル名を設定します。

構文

PROCEDURE set_profile( 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   profile_name IN VARCHAR2);

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • profile_name (IN)

    SQL翻訳プロファイル名

使用例

begin
   dbms_drdaas_admin.set_profile ( 'ORACLE', 'MYPACKAGE', 'DB2ZOS');
end;

SET_LOCALDATE_FORMAT

DRDAパッケージで使用するローカル日付書式を設定します。

構文

PROCEDURE set_localdate_format(
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   date_format IN VARCHAR2);

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • date_format (IN)

    日付書式の文字列

使用例

begin
   dbms_drdaas_admin.set_localdate_format ( 'ORACLE', 'MYPACKAGE', 'YYYYMMDD');
end;

SET_LOCALTIME_FORMAT

DRDAパッケージで使用するローカル時刻書式を設定します。

構文

PROCEDURE set_localtime_format(
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   time_format IN VARCHAR2);

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • time_format (IN)

    時刻書式の文字列

使用例

begin
   dbms_drdaas_admin.set_localtime_format ( 'ORACLE', 'MYPACKAGE', 'HH:MM:SS');
end;

SET_TYPEMAP

特定の表と列の組合せに関するデータ型マッピング・ルールを設定します。

構文

PROCEDURE set_typemap(
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   table_map IN VARCHAR2, 
   type_map IN VARCHAR2);

パラメータ

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • table_map (IN)

    表および列名の式

  • type_map (IN)

    数値型の等価式

使用例

begin
   dbms_drdaas_admin.set_typemap ( 'ORACLE', 'MYPACKAGE', 
      'SYSIBM.SYSPACKSTMT:COUNT(DISTINCT(NAME))', 'NUMBER=INTEGER');
end;

DBMS_DRDAASパッケージ

DBMS_DRDAAS PL/SQLパッケージは、DRDAパッケージを操作します。新しいDRDAパッケージのバインド、既存のDRDAパッケージの属性の変更、DRDAパッケージの削除にこのパッケージを使用できます。

Oracle Database Provider for DRDAは、特定のDRDAパッケージ操作を実行するときにパッケージDBMS_DRDAASを使用します。

この項では、次の項目について説明します。

DBMS_DRDAAS権限の定数

次の定数は、GRANT_PRIVILEGEおよびREVOKE_PRIVILEGEプロシージャで使用されます。

ALL_PRIVILEGE

この権限では、アプリケーション・パッケージのクライアントにすべての権限が付与されます。

BIND_PRIVILEGE

この権限では、クライアントがアプリケーション・パッケージをデータベースにバインドまたは再バインドできるようになります。

COPY_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージのコピーを作成し、別の名前を付けることができます(オプションで異なるパッケージ・オプションを指定できます)。

EXECUTE_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージを実行できます。

DROP_PRIVILEGE

この権限では、クライアントが既存のアプリケーション・パッケージを削除できます。

SET_PRIVILEGE

この権限では、クライアントが特定のアプリケーション・パッケージ・オプションを設定できます。このマニュアルに記載されているSET_XXXファンクションを参照してください。

BIND_PACKAGE

DRDAパッケージ定義の先頭部分を作成します。

これは、BGNBND処理のOracle Database Provider for DRDA部分により内部で使用されます。

構文

PROCEDURE bind_package( 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   version_name IN VARCHAR2 DEFAULT NULL, 
   consistency_token IN RAW, 
   owner IN VARCHAR2, 
   qualifier IN VARCHAR2, 
   isolation IN CHAR, 
   releaseopt IN CHAR, 
   blocking IN CHAR DEFAULT 'N', 
   codepage_s IN NUMBER, 
   codepage_d IN NUMBER, 
   codepage_m IN NUMBER, 
   codepage_x IN NUMBER,
   degreeioprl IN NUMBER,
   date_format IN CHAR DEFAULT '3', 
   time_format IN CHAR DEFAULT '3', 
   decimal_delimiter IN CHAR DEFAULT NULL, 
   string_delimiter IN CHAR DEFAULT NULL, 
   decprc IN NUMBER, 
   charsubtype IN CHAR,
   dynamic_rules IN CHAR DEFAULT NULL, 
   reprepdynsql IN CHAR DEFAULT NULL );

パラメータ

  • collection_id (IN): コレクションID

  • package_name (IN): パッケージ名

  • version_name (IN): バージョン名(オプション。デフォルトはNULL)

  • consistency_token (IN): 整合性トークン

  • owner (IN): パッケージの所有者

  • qualifier (IN): デフォルトのスキーマ

  • isolation (IN): 分離レベル(R=RRA=ALLC=CSG=CHGN=NC)

  • releaseopt (IN): リリース・パッケージ・リソース・オプション

  • blocking (IN): ブロック・モード(B=ブロック、N=ブロックなし)

  • codepage_s (IN): デフォルトのコードページ(SBCS)

  • codepage_d (IN): デフォルトのコードページ(DBCS)

  • codepage_m (IN): デフォルトのコードページ(MBCS)

  • codepage_x (IN): デフォルトのコードページ(XML)

  • degreeioprl (IN): IO並列度

  • date_format (IN): 日付書式(1=USA、2=EUR、3=ISO、4=JIS、5=ローカル)

  • time_format (IN)は時刻書式(1=USA、2=EUR、3=ISO、4=JIS、5=ローカル)

  • decimal_delimiter (IN): 小数点

  • string_delimiter (IN): 文字列のデリミタ

  • decprc (IN): 10進精度(15または31)

  • charsubtype (IN): 文字サブタイプ

  • dynamic_rules (IN): 動的ルール(将来使用)

  • reprepdynsql (IN): 動的SQLルールの再準備(将来使用)

使用例

begin
   dbms_drdaas.bind_package (
      'ORACLE', 'MYPACKAGE', NULL, HEXTORAW('11223344'), 'DRADUSR1',
      'PETER', 'C', 'D', 'B', 1208, 1200, 1208, 1208, 1, '3', '3', '.', '''', 
      31, 'M', 'R', 'Y' );
end;

BIND_STATEMENT

現在バインド中のDRDAパッケージに文を挿入します。

これは、BNDSQLSTT処理の一部としてOracle Database Provider for DRDAによって内部で使用されます。

構文

PROCEDURE bind_statement( 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   version_name IN VARCHAR2 DEFAULT NULL, 
   consistency_token IN RAW, 
   statement_assumption IN CHAR,
   statement_no IN NUMBER, 
   section_no IN NUMBER, 
   statement_len IN NUMBER, 
   statement IN CLOB );

パラメータ

  • collection_id (IN): コレクションID

  • package_name (IN): パッケージ名

  • version_name (IN): バージョン名(オプション。デフォルトはNULL)

  • consistency_token (IN): 整合性トークン

  • statement_assumption (IN): 文の想定事項

  • statement_no (IN): 文の番号

  • section_no (IN): セクション番号

  • statement_len (IN): SQL文テキストの長さ

  • statement (IN): 文のテキスト

使用例

begin
   dbms_drdaas.bind_statement ( 'ORACLE', 'MYPACKAGE', NULL, HEXTORAW('11223344'),
      'C', 1, 1, 42, 'DECLARE CURSOR C1 AS SELECT EMPLOYEE_ID FROM EMPLOYEES' );
end;

END_BIND

現在バインド中のDRDAパッケージをファイナライズします。(これは、ENDBND処理の一部としてOracle Database Provider for DRDAによって内部で使用されます。)

構文

PROCEDURE end_bind( 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   version_name IN VARCHAR2 DEFAULT NULL, 
   consistency_token IN RAW,
   max_sections IN NUMBER );

パラメータ

  • collection_id (IN): コレクションID

  • package_name (IN): パッケージ名

  • version_name (IN): バージョン名(オプション。デフォルトはNULL)

  • consistency_token (IN): 整合性トークン

  • max_sections (IN): セクションの最大数

使用例

begin
   dbms_drdaas.end_bind ( 'ORACLE', 'MYPACKAGE', NULL, 
      HEXTORAW('11223344'), 1 );
end;

GRANT_PRIVILEGE

パッケージに対する権限をユーザーに付与します。

構文

PROCEDURE grant_privilege( 
   privilege_grant IN PLS_INTEGER,
   collection_id IN VARCHAR2,
   package_name IN VARCHAR2,
   user_name IN VARCHAR2 );

パラメータ

  • privilege_grant (IN)

    付与する権限

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • user_name (IN)

    権限を付与するユーザーID

使用例

begin
   dbms_drdaas.grant_privilege ( DBMS_DRDAAS_ADMIN.ALL_PRIVILEGE, 'ORACLE',
     'MYPACKAGE', 'DRDAUSR1' );
end;

REVOKE_PRIVILEGE

DRDAパッケージのユーザーから権限を取り消します。

構文

PROCEDURE revoke_privilege( 
   privilege_revoke IN PLS_INTEGER, 
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2, 
   user_name IN VARCHAR2);

パラメータ

  • privilege_revoke (IN)

    取り消す権限

  • collection_id (IN)

    コレクションID

  • package_name (IN)

    パッケージ名

  • user_name (IN)

    権限を取り消すユーザーID

使用例

begin
   dbms_drdaas.revoke_privilege ( DBMS_DRDAAS_ADMIN.ALL_PRIVILEGE, 'ORACLE',
     'MYPACKAGE', 'DRDAUSR1' );
end;

DROP_PACKAGE

バージョン名を使用してDRDAパッケージを削除します。

構文

PROCEDURE drop_package(
   collection_id IN VARCHAR2, 
   package_name IN VARCHAR2);

パラメータ

  • collection_id (IN): コレクションID

  • package_name (IN): パッケージ名

使用例

begin
  dbms_drdaas.drop_package( 
    'ORACLE', 'MYPACKAGE');
end;