文字データ型とキーフィールド

キーフィールドに CHAR 型のデータを使用する場合、スペースを削除したり、エントリを作成したりするときに、Oracle Connector の機能を使用しなければなりません。

外部システムが Oracle の CHAR データ型を識別するには、一定数のスペースが必要です。一定数のスペースがないと、外部レコードは検出されません。LEI (IBM® Lotus Enterprise Integrator®) または DECS (Domino® 基幹連携サービス) の Virtual Fields アクティビティでは、スペースの削除や挿入によって問題が発生する場合があります。例えば、作成イベントを実行した後に特定のイベント (更新や削除など) が使用できなくなることがあります。Oracle では、フィールドが作成されるときに、フィールドを固定長にするためにスペースが挿入されます。Notes では、作成イベントが実行されるときにフィールドにスペースが挿入されません。このため、Notes で Oracle 側のレコードが見つからなくなります。

固定長のテキストフィールドが必要でない場合は、CHAR データ型ではなく VARCHAR2 データ型の使用してください。テキストフィールドを固定長にする場合は、式フィルタを使用してフィールドの長さを修正してください。フィールド長の修正コードのサンプルを次に示します。このコードは Notes フォームのフィールドの [Input Translation] 式、DECS の Virtual Fields アクティビティ文書の [Options: When intercepting the creation of a document...]、LEI の Advanced RealTime Virtual Fields アクティビティ文書の [Intercept Document Creation] で使用できます。

FIELD fieldName := fieldName;
@SetField ("fieldName"; fieldName + @Repeat (" "; Oracle_Column_Length --@Length(fieldName)))

例えば、Notes のフィールド名が「CharField」で Oracle の CHAR 列の長さが 32 の場合、式は次のようになります:

FIELD CharField := CharField;
@SetField ("CharField"; CharField + @Repeat (" "; 32 --@Length(CharField)))