9.3.2 表定義情報,トリガ定義情報,及びストアドプロシジャ情報の搬出入についての規則
-
搬出と搬入は,1回の実行で同時に指定できません。
-
トリガ定義情報,又はストアドプロシジャ情報の搬出順序は,制御文ファイルでの-g,又は-pオプションの指定順になります。搬入時の搬入順序は,-g,又は-pオプションの指定に関係なく,搬出時の搬出順序と同じになります。
-
搬出入の処理は,一つの表ごと,一つのトリガごと,又は一つのストアドプロシジャごとに処理が完結します。
-
搬入先に同一の表(認可識別子.表識別子が同じ表),トリガ(認可識別子.トリガ識別子),又はストアドプロシジャ(認可識別子.ルーチン識別子が同じストアドプロシジャ)がある場合,その表,トリガ,又はストアドプロシジャは搬入エラーとなります。エラーになった表以外の搬出処理は続行されます。
-
搬入前には,搬入先システムを初期設定し,搬入する表,トリガ,又はストアドプロシジャのスキーマを定義しておいてください。
-
ディクショナリ搬出入ユティリティは,搬出元の表定義をそのまま搬入先に移行します。そのため,対象となる表の格納RDエリアは,搬出元と同じ名称のものを搬入先にも定義しておく必要があります。
-
搬入する表,トリガ,又はストアドプロシジャの所有者には,表,トリガ,又はストアドプロシジャを格納するRDエリアの利用権限が必要です。
-
ストアドプロシジャの搬入時,ストアドプロシジャが使用する表は搬入先に定義しておく必要があります。該当する表が定義されていない場合は,ストアドプロシジャの搬入はできません。
-
制御文ファイルに,-tオプション,-gオプション,及び-pオプションは混在して指定できません。
-
搬入時に,2,000,000バイトを超えるSQL文を実行する場合(表,トリガ,又はストアドプロシジャを定義するSQL文の長さが2,000,000バイトを超える場合),搬入はできません。
-
次に示す表の定義情報,及びストアドプロシジャの情報は,搬出できません。
-
抽象データ型を含む表定義(CREATE TABLE)
-
インデクス型を指定したインデクス定義(CREATE INDEX)
-
関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)
-
抽象データ型定義(CREATE TYPE)
-
抽象データ型を含むストアドプロシジャ(CREATE PROCEDURE)
-
抽象データ型内で宣言されているストアドプロシジャ(CREATE TYPE)
-
手続き定義の中から手続きを呼び出している手続き(CREATE PROCEDURE)
-
手続き定義の中から関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)を呼び出している手続き(CREATE PROCEDURE)
-
TABLEに指定した表に抽象データ型の列を持つ注釈付加(COMMENT)
-
COLUMNに指定した列が抽象データ型である注釈付加(COMMENT)
-
-
HiRDB/パラレルサーバで共用表を搬入する場合,搬入先の環境の共用表,及び共用表に定義した共用インデクスを格納するRDエリアは,すべて共用RDエリアである必要があります。共用RDエリアでない場合,SQLエラーとなります。また,共用表でない表を搬入する場合,及び表の格納RDエリアが共用RDエリアの場合,SQLエラーとなります。共用表と搬入先のRDエリアとの関係を次に示します。なお,HiRDB/シングルサーバの共用表の場合,共用RDエリアを作成しないため,該当しません。
搬入元の表の種別
搬入先のRDエリアの定義
定義の実行可否
エラー後のpdexpの処理※
表格納用RDエリア
表に定義したインデクスの格納RDエリア
表
インデクス
共用表
共用RDエリア
共用RDエリア
○
○
該当しません。
共用RDエリア
非共用RDエリア
○
△
処理を中断し,表定義は無効となります。
非共用RDエリア
共用RDエリア
△
×
処理を中断します。
非共用RDエリア
非共用RDエリア
△
×
非共用表
共用RDエリア
共用RDエリア
△
×
共用RDエリア
非共用RDエリア
△
×
非共用RDエリア
共用RDエリア
○
△
処理を中断し,表定義は無効となります。
非共用RDエリア
非共用RDエリア
○
○
該当しません。
- (凡例)
-
○:定義をします。
△:定義をしますが,SQLエラーとなります。
×:定義をしません。
- 注※
-
pdexpは,定義系SQLの内部COMMITを抑止し,処理途中でエラーが発生した場合はロールバックします。
-
参照表定義時に内部的に作成されるトリガは搬出できません。搬出時にそのトリガを指定した場合,KFPX28504-Wメッセージが出力されます(該当するトリガの処理はスキップし,次のトリガの搬出をします)。