C カスタム・アプリケーション・リポジトリを構成するためのリポジトリ作成ユーティリティの拡張

構成XMLファイルは、カスタムのスキーマ作成スクリプトおよび削除スクリプトの生成に使用できます。

コンポーネント所有者がスキーマの作成スクリプトおよび削除スクリプトをRCUにプラグインできるよう、RCUにはXMLベースのフレームワークが用意されています。次の各トピックでは、コンポーネントをRCUに統合するときに使用する構成XMLファイルとスクリプト作成のガイドラインについて詳しく説明します。

RCU統合オプション

RCUには、コンポーネント・スクリプトを統合するための複数のオプションがあります。

コンポーネント・スクリプトの統合に推奨されるオプションは、RCU JDBCエンジン準拠のSQL*Plusスクリプトです。SQL*Plusスクリプトに依存するコンポーネントは、インストール先のOracleホームから実行している場合、RCUでロードできません。

RCU JDBCエンジン準拠のSQL*Plusスクリプト

RCU JDBCエンジンは、JDBC経由で一連のSQL*Plus機能をエミュレートします。この機能セットは広範にわたり、スキーマ作成の要件を十分に満たしています。

コンポーネント・チームは、わずかな変更のみで既存のSQL*Plusスクリプトを統合できます。

RCU JDBCエンジンはSQL*Plusスクリプトを解析して個々の文を取得し、各文をJDBCで実行します。スクリプトへのコマンド行引数およびDEFINE変数を用いた置換がサポートされています。スクリプトはネストできます。たとえば、1つのスクリプトから他のスクリプトをコールできます。コンポーネント・チームが、構成ファイルを介して、RCUに対して予想されるエラーおよび致命的エラーのリストを指定すると、RCUはスクリプトの実行時にこれらを解析します。

これらのスクリプトは、開発環境においてSQL*Plusで実行できるため、簡単に管理および使用できます。ただし、RCUに統合されている場合は、これらのスクリプトが正しく実行されるよう、開発環境でRCU JDBCEngineツールも使用することをお薦めします。

純粋なJDBCスクリプト

このオプションは、Oracle以外のデータベースに対して推奨されます(Oracleデータベースの場合は、RCU JDBCエンジン準拠のSQL*Plusスクリプトを使用する必要があります)。

スクリプト・ファイルの内容は、Connection.prepareCall()またはConnection.createStatement()を使用してコールできる有効なPL/SQLブロックでなければなりません。標準のJDBCバインド変数と'?'の表記規則がサポートされます。

このオプションには次のような弱点があります。

  • スクリプトはネストされません。そのため、スクリプトが大量になる可能性があります。

  • この形式のスクリプトを再作成する場合、コンポーネント・チームによるやりなおしの作業が膨大になる可能性があります。

  • DDL文ごとにEXECUTE IMMEDIATEでラップする必要があるため、管理が困難です。

  • 開発環境でSQL*Plusを使用して実行できません。

  • なんらかのエラーが発生するとブロック全体が失敗するため、エラー・サポートがあまり役立ちません。

次に、例を示します。

<Action TYPE="JDBC" PERCENT_PROGRESS="20">
   <ValidIf DBTYPE="ORACLE" />
   <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
</Action>

2番目の例を示します。

<Action TYPE="Java" PERCENT_PROGRESS="100">
   <Command TYPE="METHOD">
      oracle.ias.version.SchemaVersionUtil:utilSetComponentValid
   </Command>

   <Parameters>
      <Parameter TYPE="String">MDS</Parameter>
    </Parameters>
</Action>

SQL*Plusスクリプト

このオプションは主に、RCUからロードする必要があるレガシー・コンポーネントを使用するためのものです。

例:

<Action TYPE="SQLPlus" PERCENT_PROGRESS="100">
   <Command TYPE="SCRIPT">%SCRIPT_HOME%/oid/scripts/seedldap.sql</Command>
   <IgnorableErrors>
      <Error Type="ORA-01918">user name does not exist</Error>
   </IgnorableErrors>
</Action>

2番目の例を示します。

<Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
   <ValidIf DBTYPE="ORACLE" />
   <Command TYPE="SCRIPT">%SCRIPT_HOME%/mds/sql/mds_user.sql</Command>
   <Parameters>
      <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
      <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
      <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
      <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
   </Parameters>
</Action>

外部プロセス

このオプションは、OPCA (Oracle Portal 10g)のように、スキーマを作成するための独自の構成ツールを持つコンポーネント用のみに提供されています。

このオプションはRCUエラー処理フレームワークを利用できないため、新しいコンポーネントでの使用はお薦めできません。

例:

<Action TYPE="HostCmd">
<Command TYPE="SCRIPT">%RCU_HOME%/rcu/integration/cdb/config/bin/configure</Command>
<Parameters>
   <Parameter TYPE="ProcessInput">%JDBC_CONNECT_STRING%</Parameter>
   <Parameter TYPE="ProcessInput">%DBADMIN_USER%</Parameter>
   <Parameter TYPE="ProcessInput">%DBADMIN_PASSWORD%</Parameter>
   <Parameter TYPE="ProcessInput">%PREFIX_NAME%</Parameter>
   <Parameter TYPE="ProcessInput">%SCHEMA_USER%</Parameter>
   <Parameter TYPE="ProcessInput">%SCHEMA_PASSWORD%</Parameter>
   <Parameter TYPE="ProcessInput">%DEFAULT_TABLESPACE%</Parameter>
   <Parameter TYPE="ProcessInput">%TEMPORARY_TABLESPACE%</Parameter>
</Parameters>
</Action>

JavaActionを使用するJavaコード

このオプションは、JDBC接続を受け入れてSQL文を実行できる、Javaコードを持つコンポーネントに対して提供されています。

これは、通常、大量のデータを生成する必要がある場合、または、ラージ・オブジェクト(LOB)を作成する必要がある場合に使用します。

例:

<Action TYPE="Java">
   <Command TYPE="METHOD">
      oracle.ias.version.SchemaVersionUtil:utilCreateRegistryEntry
   </Command>

   <Parameters>
      <Parameter TYPE="Connection"></Parameter>
      <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
   </Parameters>
</Action>

2番目の例:

<Action TYPE="Java">
   <Command TYPE="METHOD">oracle.webdb.config.PortalConfigAssistant:main</Command>
   <Parameters>
      <Parameter TYPE="StringArray">-mode PORTAL -s %SCHEMA_USER% -p %DBADMIN_PASSWORD% -c %DB_HOSTNAME%:%DB_PORTNUMBER%:%DB_SERVICE% -silent -verbose -owa -u %DEFAULT_TABLESPACE% -t %TEMPORARY_TABLESPACE% -d %SCHEMA_USER%_DOC -l %SCHEMA_USER%_LOG -in %SCHEMA_USER%_IDX -demo -report -voh %RCU_HOME% -log %RCU_LOG_LOCATION% -oh %SQLPLUS_HOME% -mrc %PREFIX_NAME% -rcu </Parameter>
   </Parameters>
</Action>

RCU構成ファイル

RCUには、コンポーネントを統合するための複数の構成ファイル・タイプがあります。

次に、RCUによって定義される構成ファイルを示します。

RCUで定義されるXML DTD

RCUで定義されるXML DTDは、ORACLE_HOME/oracle_common/rcu/configディレクトリにあります。

構成ファイルは次のとおりです。

コンポーネント記述子構成ファイル

コンポーネント記述子構成ファイルはComponentInfo.dtdという名前で、ORACLE_HOME/oracle_common/rcu/configディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

各コンポーネント所有者は、前提条件とアクションを一覧表示した、次のDTDを遵守した構成ファイルを提供します。

<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % commonDTD SYSTEM "RCUCommon.dtd">
%commonDTD;
<!ELEMENT ComponentInfo (Display?, PrefixSettings?, Component*, ComponentConfigFiles?,  PrerequisiteDescriptor*, 
ExecutionDescriptor*, FatalErrors?, IgnorableErrors?)>
<!ATTLIST ComponentInfo
          VERSION CDATA #IMPLIED
          TYPE CDATA #IMPLIED
          RESOURCE_BUNDLE_PACKAGE CDATA #IMPLIED>
<!ELEMENT PrefixSettings (DetectQuery*)>
<!ATTLIST PrefixSettings 
            USE_SCHEMA_PREFIX (TRUE|FALSE) "TRUE"
            USE_TABLESPACE_PREFIX (TRUE|FALSE) "TRUE">
<!ELEMENT ComponentConfigFiles (ConfigFile*)>
<!ATTLIST ConfigFile
            ID CDATA #REQUIRED>
<!ELEMENT ConfigFile (#PCDATA)>
<!ELEMENT Component (ValidIfSet?, ValidIf?, Display,Consolidate*,SchemaBase*, RepositoryConfigFile?, DetectQuery*, SchemaVersion?, 
SchemaUser?, AdditionalSchemaUser*, Dependents?, DatabaseName?, Tablespaces?, CustomVariables?)>
<!ATTLIST Component
          ID CDATA #REQUIRED
          PROGRESS_UNITS CDATA #IMPLIED 
          IS_GROUPING_COMPONENT  (TRUE|FALSE) "FALSE"
          DEFAULT_SELECTED (TRUE|FALSE) "FALSE"
          CHILD_OF CDATA #IMPLIED 
          MANDATORY_SELECTED (TRUE|FALSE) "FALSE">
<!ELEMENT Display (#PCDATA)>
<!ATTLIST Display
          NLS_ID CDATA #IMPLIED>
<!ELEMENT Consolidate  EMPTY>
<!ATTLIST Consolidate
          VALID (TRUE|FALSE) "FALSE"
          DYNAMIC_OBJECTS (TRUE|FALSE) "FALSE">
<!ELEMENT SchemaBase  (#PCDATA) > 
<!ATTLIST SchemaBase  
    PARENT (TRUE|FALSE) "FALSE"
    TBS_OVERRIDE (TRUE|FALSE) "FALSE"
    TBS_OVERRIDE_USE_CUSTOM (TRUE|FALSE) "FALSE" 
    COMPONENT_DROP (TRUE|FALSE) "FALSE">
<!ELEMENT RepositoryConfigFile (#PCDATA)>
<!ELEMENT DetectQuery (#PCDATA)>
<!ATTLIST DetectQuery
         OPERATION (CREATE|DROP|DATALOAD) 'CREATE'
         TYPE (ORACLE|SQLSERVER|IBMDB2|EBR|MYSQL|JAVADB) 'ORACLE'>
<!ELEMENT SchemaVersion (#PCDATA)>
<!ELEMENT SchemaUser (#PCDATA)>
<!ATTLIST SchemaUser
         USER_EDITABLE (TRUE|FALSE) "TRUE"
         PREFIXABLE (TRUE|FALSE) "TRUE"
         IS_CREATED  (TRUE|FALSE) "TRUE"
         MAX_LENGTH CDATA "30">
<!ELEMENT AdditionalSchemaUser (#PCDATA)>
<!ATTLIST AdditionalSchemaUser
         STARTS_WITH_SCHEMA_USER (TRUE|FALSE) "TRUE" 
         COMPONENT_ID CDATA #IMPLIED>
<!ELEMENT Dependents (Dependent*)>
<!ELEMENT Dependent (#PCDATA)>
<!ATTLIST Dependent
         COMPONENT_ID CDATA #REQUIRED
         ALT_COMPONENT_ID CDATA #IMPLIED>
<!ELEMENT DatabaseName (#PCDATA)>
<!ELEMENT Tablespaces (Tablespace*)>
<!ATTLIST Tablespace TYPE (DEFAULT_TABLESPACE|TEMPORARY_TABLESPACE|ADDITIONAL_TABLESPACE1|ADDITIONAL_TABLESPACE2|ADDITIONAL_TABLESPACE3|
ADDITIONAL_TABLESPACE4|ADDITIONAL_TABLESPACE5|ADDITIONAL_TABLESPACE6|ADDITIONAL_TABLESPACE7|ADDITIONAL_TABLESPACE8|ADDITIONAL_TABLESPACE9|
ADDITIONAL_TABLESPACE10|ADDITIONAL_TABLESPACE11|ADDITIONAL_TABLESPACE12|ADDITIONAL_TABLESPACE13|ADDITIONAL_TABLESPACE14|ADDITIONAL_TABLESPACE15|
ADDITIONAL_TABLESPACE16|ADDITIONAL_TABLESPACE17|ADDITIONAL_TABLESPACE18|ADDITIONAL_TABLESPACE19|ADDITIONAL_TABLESPACE20|ADDITIONAL_TABLESPACE21|
ADDITIONAL_TABLESPACE22|ADDITIONAL_TABLESPACE23|ADDITIONAL_TABLESPACE24|ADDITIONAL_TABLESPACE25|ADDITIONAL_TABLESPACE26|ADDITIONAL_TABLESPACE27|
ADDITIONAL_TABLESPACE28|ADDITIONAL_TABLESPACE29|ADDITIONAL_TABLESPACE30|ADDITIONAL_TABLESPACE31) "DEFAULT_TABLESPACE">
<!ELEMENT Tablespace (Prompt, TablespaceName)>
<!ELEMENT Prompt (#PCDATA)>
<!ATTLIST Prompt NLS_ID CDATA #IMPLIED>
<!ELEMENT TablespaceName (#PCDATA)>
<!ELEMENT CustomVariables (Variable*, ValidationDescriptor*)>
<!ATTLIST Variable
        TYPE (STRING|NUMBER|PASSWORD|EXISTING_PASSWORD|FILE|LIST) "STRING"
        MAX_LENGTH CDATA "30"
        MIN_LENGTH CDATA "0"
        MAX_VALUE CDATA #IMPLIED
        MIN_VALUE CDATA #IMPLIED
        OPERATION (CREATE|DROP|SYSTEM_LOAD|DATA_LOAD|BOTH) "BOTH"
        DEFAULT_VALUE CDATA ""
        PROMPT_ON_DEFAULT_VALUE (YES|NO) "YES"
        VALUES CDATA "">
<!ELEMENT Variable (Name,Display)>
<!ELEMENT ValidationDescriptor (Action*)>
<!ATTLIST ValidationDescriptor
        OPERATION (CREATE|DROP|SYSTEM_LOAD|DATA_LOAD|BOTH) "BOTH">
<!ELEMENT Name (#PCDATA)>
リポジトリ構成ファイル

リポジトリ構成ファイルはRepositoryConfig.dtdという名前で、ORACLE_HOME/oracle_common/rcu/configディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % commonDTD SYSTEM "RCUCommon.dtd">
%commonDTD;
<!ELEMENT RepositoryConfig (PrerequisiteDescriptor*, ExecutionDescriptor, DeleteDescriptor?)>
<!ATTLIST RepositoryConfig
        COMP_ID CDATA #REQUIRED>
<!ELEMENT DeleteDescriptor (Action*)>
サポートされるコンポーネントのプライマリ・リスト

RCUは、サポートされるコンポーネントのプライマリ・リストを保持しています。これは、サポートされる各コンポーネントのエントリで構成されています。新しいコンポーネントが追加されるたびに、サポートされるコンポーネントのプライマリ・リストは、コンポーネント所有者によって提供されるXML統合ファイルを参照して更新されます。

この構成ファイルはRCUCommon.dtdという名前で、ORACLE_HOME/oracle_common/rcu/configディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT PrerequisiteDescriptor (DBPrerequisiteSet*, DBPrerequisite*)>
<!ATTLIST PrerequisiteDescriptor
        TYPE (CREATE|DROP|REGISTER|DEREGISTER|SYSTEMLOAD|DATALOAD) 'CREATE'>
<!ELEMENT DBPrerequisiteSet (ValidIfSet?, ValidIf?, PrereqSetErrorMsg?, DBPrerequisite*)>
<!ATTLIST DBPrerequisiteSet
          OPERATOR (OR|AND) "OR"
          SOFT (TRUE|FALSE) "FALSE">
<!ELEMENT DBPrerequisite (ValidIfSet?, ValidIf?, PrereqIdentifier, PrereqValue, PrereqErrorMsg?)>
<!ATTLIST DBPrerequisite
PREREQ_TYPE (InitParameter|DBOption|Java|DBComponent|DBVersion|DBObject|CustomSQL|TablespaceFreeMB) "CustomSQL"
        DATA_TYPE (STRING|NUMBER|VERSION) "STRING"
        COMPARE_OPERATOR (EQ|GT|LT|NE|GE|LE|COMPARE_VERSION) "EQ"
        SOFT (TRUE|FALSE) "FALSE">
 
<!ELEMENT PrereqIdentifier (#PCDATA)>
<!ELEMENT PrereqValue (#PCDATA)>
<!ELEMENT PrereqSetErrorMsg (#PCDATA)>
<!ATTLIST PrereqSetErrorMsg
        NLS_ID CDATA #IMPLIED>
<!ELEMENT PrereqErrorMsg (#PCDATA)>
<!ATTLIST PrereqErrorMsg
        NLS_ID CDATA #IMPLIED>
<!ATTLIST PrereqValue
        UNIT (KB|MB|NoUnit) 'NoUnit'>
<!ELEMENT ExecutionDescriptor (Action*)>
<!ATTLIST ExecutionDescriptor
        TYPE (Load|PreLoad|PostLoad|DataLoad|PostDataLoad) "Load">
<!ELEMENT Action (ValidIfSet?, ValidIf?, Command, Parameters?, FatalErrors?, IgnorableErrors?)>
<!ATTLIST Action
        TYPE (JDBCSqlScript|JDBC|SQLPlus|HostCmd|Java) "JDBCSqlScript"
        DB_VERSION CDATA #IMPLIED
        PERCENT_PROGRESS CDATA #IMPLIED
        CONNECT_AS_OWNER (TRUE|FALSE) "FALSE"
        CONNECT_AS_REGISTRYOWNER (TRUE|FALSE) "FALSE"
        RESET_SESSION (TRUE|FALSE) "FALSE">
<!ELEMENT Command (#PCDATA)>
<!ATTLIST Command
        TYPE (SCRIPT|INLINE|METHOD) "SCRIPT">
<!ELEMENT Parameters (Parameter*)>
<!ELEMENT Parameter (#PCDATA)>
<!ATTLIST Parameter
        TYPE (BindVar|CmdLine|ProcessInput|EnvVar|Connection|int|String|StringArray|boolean) "CmdLine">
<!ELEMENT FatalErrors (Error*)>
<!ELEMENT IgnorableErrors (Error*)>
<!ELEMENT Error (#PCDATA)>
<!ATTLIST Error
        Type CDATA #REQUIRED>
<!ELEMENT ValidIfSet (ValidIf*)>
<!ATTLIST ValidIfSet
          DBTYPE CDATA #IMPLIED
          DBVERSION CDATA #IMPLIED
          OSNAME CDATA #IMPLIED
          OPERATION_TYPE CDATA "ALL"
          OPERATOR (OR|AND) "OR">
<!ELEMENT ValidIf (CustomQueryFilter?)>
<!ATTLIST ValidIf
 DBTYPE CDATA #IMPLIED
        DBVERSION CDATA #IMPLIED
        OSNAME CDATA #IMPLIED
        OPERATION_TYPE CDATA "ALL">
<!ELEMENT CustomQueryFilter (#PCDATA)>
<!ATTLIST CustomQueryFilter
        DATA_TYPE (STRING|NUMBER) "STRING"
        COMPARE_OPERATOR (EQ|GT|LT|NE|GE|LE|COMPARE_VERSION) "EQ"
        VALUE CDATA #REQUIRED >
記憶域属性構成ファイル

RCUは、作成する必要のある表領域またはデータファイルおよびその属性のリストを保持しています。これにより、表領域属性およびデータファイル属性を外部で変更できます。

記憶域属性構成ファイルはStorage.dtdという名前で、ORACLE_HOME/oracle_common/rcu/configディレクトリ(UNIXオペレーティング・システム)またはORACLE_HOME\oracle_common\rcu\configディレクトリ(Windowsオペレーティング・システム)にあります。

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT StorageAttributes ( ComponentStorageFiles?, TablespaceAttributes*)>
<!ELEMENT ComponentStorageFiles (StorageFile*)>
<!ATTLIST StorageFile
          ID CDATA #REQUIRED>
<!ELEMENT StorageFile (#PCDATA)>
<!ELEMENT TablespaceAttributes (ValidIfSet?, ValidIf?,Type?,DefaultTemp?,BlockSize?,ExtentSize?,PageSize?,AutoResize?,IncreaseSize?,MaxSize?,Bigfile?,AutoSegmentSpaceManagement?, DatafilesList)>
<!ATTLIST TablespaceAttributes
        NAME CDATA #REQUIRED
    OMF (TRUE|FALSE) "FALSE">
<!ELEMENT ValidIfSet (ValidIf*)>
<!ATTLIST ValidIfSet
    DBTYPE CDATA #IMPLIED
    DBVERSION CDATA #IMPLIED
    OSNAME CDATA #IMPLIED
    OPERATOR (OR|AND) "OR">
<!ELEMENT ValidIf (CustomQueryFilter?)>
<!ATTLIST ValidIf
    DBTYPE CDATA #IMPLIED
    DBVERSION CDATA #IMPLIED
    OSNAME CDATA #IMPLIED >
<!ELEMENT Type (#PCDATA)>
<!ELEMENT DefaultTemp (#PCDATA)>
<!ELEMENT BlockSize (#PCDATA)>
<!ELEMENT ExtentSize (#PCDATA)>
<!ELEMENT PageSize (#PCDATA)>
<!ATTLIST PageSize
        UNIT (KB|NoUnit) 'KB'>
<!ELEMENT AutoResize (#PCDATA)>
<!ELEMENT IncreaseSize (#PCDATA)>
<!ATTLIST IncreaseSize
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT MaxSize (#PCDATA)>
<!ATTLIST MaxSize
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT Bigfile (#PCDATA)>
<!ELEMENT AutoSegmentSpaceManagement (#PCDATA)>
<!ELEMENT DatafilesList (DatafileAttributes+)>
<!ELEMENT DatafileAttributes (Size, Reuse?, AutoExtend?, Increment?, Maxsize?)>
<!ATTLIST DatafileAttributes
 ID CDATA #REQUIRED>
<!ELEMENT Size (#PCDATA)>
<!ATTLIST Size
        UNIT (KB|MB|GB) 'MB'>
<!ELEMENT Reuse (#PCDATA)>
<!ELEMENT AutoExtend (#PCDATA)>
<!ELEMENT Increment (#PCDATA)>
<!ATTLIST Increment
        UNIT (KB|MB|GB) 'KB'>
<!ELEMENT Maxsize (#PCDATA)>
<!ATTLIST Maxsize
        UNIT (KB|MB|GB) 'MB'>

表C -1 RCU XML構成ファイルの詳細

要素 属性 説明 サポートされる値

TablespaceAttributes

名前

表領域の名前を示します

タイプ

表領域のタイプ(デフォルトまたは一時)を示します

  • 一時的

  • 永続的

Bigfile

値に基づいて表領域がbigfile表領域かどうかを示します

  • True

  • False

DatafilesList

データファイル情報をグループ化します

DatafileAttributes: Size

ID

たとえば、

<DatafileAttributes ID="%DATAFILE_LOCATION%/mds.dbf"> <Size UNIT="MB"> 100 </Size>

表領域のサイズを示します

整数値

DatafileAttributes: Reuse

既存のファイルを再利用できます

  • True

  • False

DatafileAttributes: AutoExtend

値に基づいて、新規データファイルまたは一時ファイルの自動拡張機能を有効または無効にできるようにします

  • True

  • False

DatafileAttributes: Increment

オブジェクトに割り当てる次のエクステント・サイズをバイト単位で指定します

整数値

DatafileAttributes: Maxsize

セグメントの最大サイズを示します

値は-1で、maxsizeが無制限の場合は必要な値を指定します

UNIT

表領域サイズの単位を示します

KB/MB/GB

デフォルト値はMBです。

AutoSegmentSpaceManagement

値に基づいて、ディクショナリ管理表領域またはローカル管理表領域を示します

  • True

  • False

「True」はディクショナリ管理表領域を示し、「False」はローカル管理表領域を示します。

データベース表領域の詳細は、Oracle® Databaseリファレンス・ガイドDBA_TABLESPACESに関する項を参照してください。

コンポーネント・リポジトリ構成ファイル

コンポーネント・リポジトリ構成ファイル(component.xml)には、前提条件と、スキーマのロードまたは削除の実行に必要なスクリプトまたはアクションのリストが含まれています。

このファイルは、コンポーネント所有者が提供および管理します。

UNIXオペレーティング・システムでは、各component.xmlファイルはORACLE_HOME/oracle_common/common/sql/component/component.xmlディレクトリにあります。

コンポーネント所有者は、事前定義されている一連のRCUパラメータを使用できます。これらのパラメータはユーザー入力に基づき、RCUにより実行時に置換されます。事前定義されているパラメータのリストを次に示します。

表C-2 事前定義されているRCUパラメータ

RCUパラメータ 説明

%ORACLE_HOME%

Oracleホーム・ディレクトリの場所。

%SCRIPT_HOME%

スクリプトが配置される場所。ORACLE_HOMEと同じ可能性があります。

%SCHEMA_USER%

RCUでユーザーによって入力されるデータベース・スキーマ名(所有者)。

%SCHEMA_PASSWORD%

RCUでユーザーによって入力されるデータベース・スキーマ・パスワード。

%ADDITIONAL_SCHEMA_USER%

ComponentInfo.xmlファイル内で定義される追加のスキーマ・ユーザー。

%ADDITIONAL_SCHEMA_PASSWORD<n>%

追加のスキーマ・ユーザーのパスワード。

%DEFAULT_TABLESPACE%

ユーザーによってコンポーネントに割り当てられるデフォルト表領域。

%TEMPORARY_TABLESPACE%

ユーザーによってコンポーネントに割り当てられる一時表領域。

%ADDITIONAL_TABLESPACE<n>%

ユーザーによってコンポーネントに割り当てられるその他の表領域。その他の表領域は最大で3つサポートされます。

%DEFAULT_PERMANENT_TABLESPACE%

設定が行われなかった場合の、データベース内のデフォルトの永続表領域(USERSSYSTEMなど)。

%DEFAULT_TEMP_TABLESPACE%

設定が行われなかった場合の、データベース内のデフォルトの一時表領域(たとえば、Oracle付属のデータベース内のTEMP、またはSYSTEM)。

%DATAFILE_LOCATION%

表領域やデータファイルが作成されるデフォルトの場所。

%JDBC_CONNECT_STRING%

JDBC接続文字列。

%PREFIX_NAME%

スキーマおよび表領域の名前に使用されるユーザー指定の接頭辞。

%CONNECTION%

JavaActionに渡される接続済のjava.sql.Connectionオブジェクト。

%DBADMIN_USER%

「データベース接続の詳細」で提供されるデータベース管理ユーザー。

%DBADMIN_PASSWORD%

「データベース接続の詳細」で提供されるデータベース管理ユーザーのパスワード。

%DBADMIN_ROLE%

「データベース接続の詳細」で提供されるデータベース管理ユーザーのロール。

%DB_HOSTNAME%

「データベース接続の詳細」で提供されるデータベースのホスト名。

%DB_SERVICE%

データベース・サービス名。

%DB_PORTNUMBER%

「データベース接続の詳細」で提供されるデータベースのポート番号。

%RCU_HOME%

RCUのインストール先のディレクトリ。

%SQLPLUS_HOME%

SQL*Plusが配置されるORACLE_HOME

%RCU_LOG_LOCATION%

RCUログ・ファイルが作成されるディレクトリの場所。

%DATABASE_NAME%

データベース名(SQLServerデータベースの場合)。

OPSSのコンポーネント・リポジトリ構成ファイルのサンプル(opss.xml)を次に示します。このファイルには、一連の前提条件およびアクションが一覧表示されています。

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE RepositoryConfig SYSTEM "RepositoryConfig.dtd">
<RepositoryConfig COMP_ID="OPSS">
 
   <!-- Prerequisites for OPSS -->
   <PrerequisiteDescriptor>
         <!-- ORACLE Prerequisites -->
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="ORACLE" />
            <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="ORACLE" />
            <PrereqIdentifier>%TEMPORARY_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
 
         <!-- ORACLE EBR Prerequisites -->
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="EBR" />
            <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
         <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER"
                         COMPARE_OPERATOR="GT">
            <ValidIf DBTYPE="EBR" />
            <PrereqIdentifier>%TEMPORARY_TABLESPACE%</PrereqIdentifier>
            <PrereqValue>50</PrereqValue>
         </DBPrerequisite>
 
      <!-- SQLServer Prerequisites -->
 
      <!-- DB2 Prerequisites -->
 
   </PrerequisiteDescriptor>

 <PrerequisiteDescriptor TYPE="DROP">
        <!-- ORACLE Prerequisites -->
        <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER"
                COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="ORACLE" />
                <PrereqIdentifier>
                        select count(*) from v$session where username='%SCHEMA_USER%'
                </PrereqIdentifier>
                <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg>
                        The schema owner %SCHEMA_USER% is connected to the
                        database. Please disconnect and try again.
                </PrereqErrorMsg>
        </DBPrerequisite>
 
        <!-- ORACLE EBR Prerequisites -->
        <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="NUMBER" COMPARE_OPERATOR="EQ">
                <ValidIf DBTYPE="EBR" />
                <PrereqIdentifier>select count(*) from v$session where username='%SCHEMA_USER%'</PrereqIdentifier>
                <PrereqValue>0</PrereqValue>
                <PrereqErrorMsg NLS_ID="WC_USER_CONNECTED">The schema owner %SCHEMA_USER% is connected to the database. Please disconnect and try again.</PrereqErrorMsg>
        </DBPrerequisite>
 
 
      <!-- SQLServer Prerequisites -->
 
      <!-- DB2 Prerequisites -->
 
   </PrerequisiteDescriptor>
 
 
   <!-- Creating the OPSS Schema and Setting it to valid in the Registry -->
   <ExecutionDescriptor>
      <Action TYPE="Java" PERCENT_PROGRESS="20">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilCreateRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">Oracle Platform Security Services</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="String">12.1.2.0.0</Parameter>
            <Parameter TYPE="String">LOADING</Parameter>
         </Parameters>
      </Action>
 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-01918">user name does not exist</Error>
         </IgnorableErrors>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-01918">user name does not exist</Error>
         </IgnorableErrors>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_PASSWORD%</Parameter>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="40">
         <ValidIf DBTYPE="IBMDB2"/>
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>

 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-00942">table or view does not exist</Error>
         </IgnorableErrors>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
         <IgnorableErrors>
            <Error Type="ORA-00942">table or view does not exist</Error>
         </IgnorableErrors>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="60">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_tables.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%DEFAULT_TABLESPACE%</Parameter>
            <Parameter TYPE="CmdLine">%TEMPORARY_TABLESPACE%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>

 <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="70">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_version.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="IBMDB2" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/db2/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="80">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/oracleEbr/opss_gencatalog.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
            <Parameter TYPE="CmdLine">%EDITION_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript"  CONNECT_AS_OWNER="TRUE" PERCENT_PROGRESS="100">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/upgd_mgmt_schema.sql</Command>
      </Action>
 
      <Action TYPE="Java">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilSetComponentValid</Command>
         <Parameters>
            <Parameter TYPE="String">OPSS</Parameter>
         </Parameters>
      </Action>
 </ExecutionDescriptor>

 <!-- Deleting the OPSS Schema and removing it from the Registry -->
   <DeleteDescriptor>
      <Action TYPE="JDBC" PERCENT_PROGRESS="50">
         <ValidIf DBTYPE="ORACLE" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
      </Action>
      <Action TYPE="JDBC" PERCENT_PROGRESS="50">
         <ValidIf DBTYPE="EBR" />
         <Command TYPE="INLINE">DROP USER %SCHEMA_USER% CASCADE</Command>
      </Action>
 
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="20">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_drop_table.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
         </Parameters>
      </Action>
      <Action TYPE="JDBCSqlScript" PERCENT_PROGRESS="50">
         <ValidIf DBTYPE="SQLSERVER" />
         <Command TYPE="SCRIPT">%SCRIPT_HOME%/opss/scripts/sqlserver/opss_drop_user.sql</Command>
         <Parameters>
            <Parameter TYPE="CmdLine">%DATABASE_NAME%</Parameter>
            <Parameter TYPE="CmdLine">%SCHEMA_USER%</Parameter>
         </Parameters>
      </Action>
 
     <Action TYPE="Java" PERCENT_PROGRESS="50">
       <ValidIf DBTYPE="IBMDB2" />
       <Command TYPE="METHOD">oracle.sysman.assistants.common.dbutil.jdbc.DB2DropUtil:dropCompRepos</Command>
       <Parameters>
         <Parameter TYPE="Connection"></Parameter>
         <Parameter TYPE="String">%SCHEMA_USER%</Parameter>
       </Parameters>
     </Action>
 
     <Action TYPE="Java" PERCENT_PROGRESS="100">
         <Command TYPE="METHOD">oracle.ias.version.SchemaVersionUtil:utilDropRegistryEntry</Command>
         <Parameters>
            <Parameter TYPE="Connection"></Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
            <Parameter TYPE="String">%PREFIX_NAME%</Parameter>
            <Parameter TYPE="String">OPSS</Parameter>
         </Parameters>
     </Action>
   </DeleteDescriptor>
</RepositoryConfig>

ソフト前提条件のサポート

特定の<DBPrerequisiteSet>または<DBPrerequisite>が必須でない場合は、ComponentInfo.xmlファイル内で、SOFT属性をTRUEに設定することで、ソフト前提条件のオプションを使用できます

ソフト前提条件が満たされない場合、ポップアップ・ウィンドウが開き、エラー・メッセージまたは警告メッセージが表示されます。ここでユーザーはメッセージを無視するか、操作を中止するかを選択することができます。<DBPrerequisiteSet>レベル、<DBPrerequisite>レベルまたはその両方で、ソフト前提条件を定義できます。両方定義されている場合は、<DBPrerequisiteSet>が優先されます。

<DBPrerequisite>レベルでソフト前提条件を設定する例を次に示します。

<DBPrerequisiteSet>
...
   <DBPrerequisite PREREQ_TYPE="CustomSQL" DATA_TYPE="STRING" COMPARE_OPERATOR="EQ" SOFT="TRUE">
      <PrereqIdentifier>select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET'</PrereqIdentifier>
      <PrereqValue>AL32UTF8</PrereqValue>
      <PrereqErrorMsg>
      The database you are connecting is with non-AL32UTF8 character set.
      Oracle strongly recommends using AL32UTF8 as the database character
      set.
      </PrereqErrorMsg>
   </DBPrerequisite>
...
<DBPrerequisiteSet>

デフォルト表領域構成ファイル

デフォルト表領域構成ファイル(Storage.xml)には、表領域が即時利用可能な状態で作成されるコンポーネントが一覧表示されます。UNIXオペレーティング・システムでは、このファイルはORACLE_HOME/oracle_common/rcu/configディレクトリにあります。

UNIXオペレーティング・システムでは、各コンポーネントの実際の表領域構成ファイルはORACLE_HOME/oracle_common/rcu/integrationcomponent/component_Storage.xmlディレクトリにあります。各コンポーネントには、それぞれの表領域構成ファイルがあります。

サンプルのopss_Storage.xmlファイルを次に示します。

<?xml version="1.0" encoding="UTF-8" ?>
 
<!--  OPSS START   -->
<TablespaceAttributes NAME="IAS_OPSS">
  <Type>Permanent</Type>
  <DefaultTemp>False</DefaultTemp>
  <Bigfile>False</Bigfile>
  <DatafilesList>
    <DatafileAttributes ID="%DATAFILE_LOCATION%/ias_opss.dbf">
      <Size UNIT="MB">60</Size>
      <Reuse>True</Reuse>
      <AutoExtend>True</AutoExtend>
    </DatafileAttributes>
  </DatafilesList>
</TablespaceAttributes>
<!--  OPSS END   -->

RCU XML構成ファイルの詳細は、「記憶域属性構成ファイル」表C-1を参照してください

RCUスクリプト作成のガイドライン

RCUスクリプトの作成時には、ここに示すガイドラインを使用してください。

スキーマ・ユーザー名およびパスワードをハードコードしないでください。これらは置換可能な変数としてコード化する必要があります。

  • スキーマ・ユーザーを作成する必要がある場合は、RCUによって渡されたパラメータを使用して最初に作成します。

  • 表領域および一時表領域の参照をハードコードしないでください。これらは変数としてコード化する必要があります。

  • CONNECTを使用しないでください。かわりに、スキーマ・ユーザーの作成後にALTER SESSION SET CURRENT_SCHEMA = <SCHEMA_OWNER>を使用します。

  • 無視できる、および致命的なORAエラーのセット(ある場合)は、RCU XMLコンポーネント構成ファイルに一覧表示します。

  • データベース・インスタンスをバウンスする停止起動は回避します。

  • スキーマのロードの前後にSCHEMA_VERSION_REGISTRYを更新してください。これは、「JavaActionを使用するJavaコード」に示されているJavaActionを使用して、または、SCHEMA_VERSION PL/SQLパッケージを使用するコンポーネント・スクリプト内で実行できます。

  • 行コメント(/* -- コメント */)を含むブロック・コメントはサポートされていません。

次に、様々なスクリプトのRCUに関するガイドラインを示します。

RCU JDBCエンジンに準拠したSQL*Plusスクリプトのガイドライン

ここに示すガイドラインは、RCU JDBCエンジンのSQL*Plusスクリプトを作成する際に使用してください。

  • すべての文は、適切な終了文字で終了する必要があります。CREATE PACKAGE、TYPEは、次の行の; (セミコロン)と/ (スラッシュ)で終了する必要があります。他のすべての文(Create TABLE、VIEWなど)は、; (セミコロン)または/ (スラッシュ)のいずれかで終了する必要があります。

  • EXECUTEコールは、BEGIN/ENDブロックに置き換える必要があります。

  • DEFINE文は1行で指定し、同じ行にコメントは指定しません。また、最後に; (セミコロン)は付けません。

  • SET、SHOW、SPOOL、WHENEVER、BREAK、EXITの各文は無視されます。

  • HOSTコマンドはまだサポートされていません。

  • VARIABLEおよびCOL(UMN)はサポートされていません。

    次の方法を使用して、PL/SQLブロック内で別のSQLスクリプトを動的にコールすることはサポートされていません。

    VARIABLE initfile VARCHAR2(32)
    COLUMN :initfile NEW_VALUE init_file NOPRINT;
    BEGIN
      IF (some condition) THEN
         :initfile := 'initcdc.sql';
      ELSE  
         :initfile := 'nothing.sql';
      END IF;
    END;
    /
    SELECT :initfile FROM DUAL;
    @@&init_file
    

    これに対処するには、個別のアクションとValidIfタグで条件を指定します。

純粋なJDBCスクリプトのガイドライン

ここに示すガイドラインは、RCU用の純粋なJDBCスクリプトを作成する際に使用してください。

  • SQL*Plusディレクティブ(SET、WHENEVERなど)を指定してはいけません。

  • すべてのDEFINESは、PL/SQL変数宣言に変更します。

  • すべてのSQL文はEXECUTE IMMEDIATEでラップします。

  • PL/SQLスタイルのコメントは使用できますが、SQL*Plusスタイル(REM)のコメントは使用できません。

  • CREATE文の前のDROP文は動作しません。DROPは、オブジェクトの有無を確認した後でのみ実行してください。すべてのDROP文を異なるPL/SQLスクリプトにまとめておいて、RCUがCREATEスクリプトをコールする前に、必要に応じてこのスクリプトをコールできるようにすることが理想です。

  • スクリプト・ファイルの内容は、Connection.prepareCall()内でコールできる有効なPL/SQLブロックである必要があります。

SQL*Plusスクリプトのガイドライン

ここに示すガイドラインは、RCU用のSQL*Plusスクリプトを作成する際に使用してください。

  • exit文またはWHENEVER ERROR EXITディレクティブを指定しないでください。これを指定すると、RCU SQL*Plusセッションが予期せず終了し、後で実行される他のコンポーネント・スクリプトが影響を受けることがあります。

  • スクリプトにはスプール・コマンドは指定しません。RCUは、コンポーネントごとにスプール・ログを生成します。

SQL Serverベース・スクリプトのガイドライン

ここに示すガイドラインは、RCU用のSQL Serverベース・スクリプトを作成する際に使用してください。

  • サポートの内容は、sqlcmdによって実行できるt-sqlスクリプトでサポートされているもののサブセットです。

  • データベース固有のすべてのアクションおよび前提条件に、ValidIfタグを追加します。たとえば:

    <DBPrerequisite PREREQ_TYPE="TablespaceFreeMB" DATA_TYPE="NUMBER" COMPARE_OPERATOR="GT">
       <ValidIf DBTYPE="ORACLE" />
       <PrereqIdentifier>%DEFAULT_TABLESPACE%</PrereqIdentifier>
       <PrereqValue>50</PrereqValue>
    </DBPrerequisite>
    
  • RCUは、次のような再帰的な変数定義をサポートします。

    setvar var1 value1
    setvar var2 $(var1)
    
  • 文のブロックを終了するには、go文が必要です。go文より前のすべての文は、単一の文としてJDBCで実行されます。

  • JDBC接続は、自動コミット・モードがオンのときに作成されます。

  • 現時点では、BEGIN TRANSACTION文およびCOMMIT TRANSACTION文はサポートされていません。

  • XMLファイルを介してスクリプトに渡される変数は、次のように渡します。

    Script.sql –v v1=value1 v2=value2
    

    これはXMLファイルを使用してコールされるスクリプトに限定されます。スクリプトが別のスクリプトをコールする場合は、他の変数名を使用できます。