HiRDB Datareplicator Version 8 Description, User's Guide and Operator's Guide

[Contents][Glossary][Index][Back][Next]

4.3.6 Designing repetition columns

This subsection explains how to design repetition columns.

Organization of this subsection
(1) Limitations on extracting repetition column data
(2) Limitations on importing repetition column data
(3) Import definition for linking repetition columns
(4) Character encoding conversion for data in repetition columns
(5) UOC interface for repetition column data
(6) Processing when the numbers of elements do not match

(1) Limitations on extracting repetition column data

Datareplicator does not require any special definitions for extraction of repetition columns. However, the following limitations apply:

(2) Limitations on importing repetition column data

When you import repetition column data that has been updated by the UPDATE statement's SET clause and the following conditions are true, an SQL error (SQLCODE = -129) occurs at the target Datareplicator, which disables import processing:

Because the number of mapping keys is always at least one, the maximum number of update items in a repetition column in the SET clause that can be imported is 29,999. To update a large amount of element data with a single SQL statement, such as when updating all elements in a repetition column in the source system, we recommend that you update column-by-column instead of by specifying an update item for each element.

(3) Import definition for linking repetition columns

To specify a repetition column in the import definition, use the load statement to define that the table that contains the repetition column is to be subject to import processing, in the same manner as with the conventional method. You can specify only the NULL literal for a repetition column in the update information field definition (const specified in the format statement's name clause). If you specify any other value, Datareplicator imports the specified literal as is without regarding it as an error (this results in a data compatibility error at the target HiRDB).

If you specify a table that contains a repetition column with the load statement in the import definition, timestamp cannot be specified to create a time-ordered table. If you do specify timestamp for a table containing a repetition column, Datareplicator regards it as a definition analysis error and terminates import processing with the corresponding data linkage identifier (dsid).

When you specify a table that contains a repetition column with the load statement in the import definition, you can still create a merge table by specifying sqlconvopt1 or sqlconvopt2. However, to change UPDATE to INSERT in an element specification, the null value will be provided for any absent element data (see (3) in 3.3.11 Creating a merge table).

(4) Character encoding conversion for data in repetition columns

If the source HiRDB uses a different character encoding set than the target HiRDB, Datareplicator performs character encoding conversion on each element data item in a repetition column. For details about character encoding conversion, see 4.3.5 Designing for character code sets.

(5) UOC interface for repetition column data

You can use an import information editing UOC routine and a column data editing UOC routine to process repetition column data. However, the column data editing UOC routine passes each element data item individually (each call to the column data editing UOC function passes one element data item to this UOC function). This means that you cannot use a column data editing UOC routine to increase or decrease the number of elements.

(6) Processing when the numbers of elements do not match

If you execute UPDATE SET or DELETE specifying an element number with no data for a repetition column, HiRDB ignores update processing on any nonexistent repetition column element (in which case 0 is set in SQLCODE and W in SQLWARN7).

With normal data linkage, the numbers of elements in a repetition column always match between the source and target. However, if a mismatch occurs due to importing of a merge table or updating of the target table conducted by HiRDB, Datareplicator executes processing according to the skip_mvcelmwarn and sqlerr_skip_info operand specifications in the import environment definition.

skip_mvcelmwarn sqlerr_skip_info
output msgoutput sqloutput nooutput
true Processing Normal (resume import processing)
Output message Warning Warning None None
Unimported output Output None Output None
false Processing Error (roll back the transaction and cancel import processing)
Output message Error
Unimported output Output