バッチ モードのシュレッディングでは、デフォルトで、個別の文書を処理している間にエラーが発生した場合、バッチはアボートされ、ストアド プロシージャから発生したエラーのタイプを示すエラー メッセージが返されます。
場合により、バッチ内の残りのドキュメントを引き続き処理して、後から順位付け、解決できるように指定されたエラー テーブルにエラーを書き込むことが望ましいときがあります。このシュレッディングの許容モードは、errorTableオプションをexternalContextパラメータの一部としてバッチ シュレッディングのストアド プロシージャに渡すことにより呼び出すことができます。
externalContextパラメータは、name=valueペアのカンマ区切りのリストです。許容されるエラー処理を呼び出すには、ユーザーはexternalContextの名前のいずれかとしてerrorTableを指定し、その値としてテーブル名を含めることができます。テーブル名はそのデータベース名で修飾することもできます。修飾しない場合、テーブルはシュレッディング ストアド プロシージャを呼び出すユーザーの下に存在する必要があります。文書のバッチのシュレッディングの際に、いずれかの文書がシュレッディングに失敗すると、その文書IDとエラー メッセージがエラー テーブルに書き込まれます。
DOCID VARCHAR(128), ERRMSG VARCHAR(512),
TS TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- エラー テーブルが存在しない。
- エラー テーブルにdocid列とerrmsg列が存在しない。
- シュレッディング プロシージャを呼び出すユーザーには、エラー テーブルへの挿入権限がない。
XMLバッチのシュレッディングは2つのフェーズで行なわれます。最初のフェーズでは、バッチ内のすべての文書が揮発テーブルにシュレッディングされ、第2フェーズではデータが揮発テーブルからターゲット テーブルに転送されます。最初のフェーズで何らかの理由によっていずれかの文書のシュレッディングに失敗すると、対応する文書IDとエラー メッセージがエラー テーブルに書き込まれます。これにより、ストアド プロシージャはバッチ内の残りの文書を引き続きシュレッディングできます。ただし第2フェーズで(データを揮発テーブルからターゲット テーブルに移動中に)エラーが発生した場合は、ターゲット テーブルへの書き込みなしにシュレッディングの手順はアボートします。