Example 15
The following example assumes you want to load a data file
into the JOBS table that contains more fields than the table
definition in the mf_personnel database. The example first
attempts to do this by just excluding the extra field from the
list associated with the Fields qualifier. However, this causes
an error to be returned. The example then uses the FILLER keyword
in the .rrd file to tell Oracle RMU not to attempt to load the
additional field. The command executes successfully.
The table definition for the JOBS table is as follows:
Columns for table JOBS:
Column Name Data Type Domain
----------- --------- ------
JOB_CODE CHAR(4) JOB_CODE_DOM
Primary Key constraint JOBS_PRIMARY_JOB_CODE
WAGE_CLASS CHAR(1) WAGE_CLASS_DOM
JOB_TITLE CHAR(20) JOB_TITLE_DOM
MINIMUM_SALARY INTEGER(2) SALARY_DOM
MAXIMUM_SALARY INTEGER(2) SALARY_DOM
The .rrd file for the data you want to load appears as follows
(note that there is no corresponding field to JOB_STATUS in the
mf_personnel database definition for the JOBS table):
DEFINE FIELD JOB_CODE DATATYPE IS TEXT SIZE IS 4.
DEFINE FIELD WAGE_CLASS DATATYPE IS TEXT SIZE IS 1.
DEFINE FIELD JOB_TITLE DATATYPE IS TEXT SIZE IS 20.
DEFINE FIELD MINIMUM_SALARY DATATYPE IS TEXT SIZE IS 13.
DEFINE FIELD MAXIMUM_SALARY DATATYPE IS TEXT SIZE IS 13.
DEFINE FIELD JOB_STATUS DATATYPE IS TEXT SIZE IS 4.
DEFINE RECORD JOBS.
JOB_CODE .
WAGE_CLASS .
JOB_TITLE .
MINIMUM_SALARY .
MAXIMUM_SALARY .
JOB_STATUS .
END JOBS RECORD.
The data file you want to load, jobs.unl, appears as follows:
DBAD4Corp Db Administratr55000.00 95000.00 Old
You attempt to load the file in the mf_personnel database
by listing only the fields in the RMU Load command that have
corresponding fields defined in the database:
$ RMU/LOAD MF_PERSONNEL/RMS=(FILE=JOBS.RRD, FORMAT=TEXT) -
_$ /FIELDS=(JOB_CODE, WAGE_CLASS, JOB_TITLE, MINIMUM_SALARY, -
_$ MAXIMUM_SALARY) JOBS JOBS.UNL
%RMU-F-FLDMUSMAT, Specified fields must match in number and datatype
with the unloaded data
%RMU-I-DATRECSTO, 0 data records stored
The workaround for the problem of a mismatch between your data
and .rrd file, and database definition for a table is to use the
FILLER keyword in your .rrd file, as follows:
DEFINE FIELD JOB_CODE DATATYPE IS TEXT SIZE IS 4.
DEFINE FIELD WAGE_CLASS DATATYPE IS TEXT SIZE IS 1.
DEFINE FIELD JOB_TITLE DATATYPE IS TEXT SIZE IS 20.
DEFINE FIELD MINIMUM_SALARY DATATYPE IS TEXT SIZE IS 13.
DEFINE FIELD MAXIMUM_SALARY DATATYPE IS TEXT SIZE IS 13.
DEFINE FIELD JOB_STATUS DATATYPE IS TEXT SIZE IS 4 FILLER. <------
DEFINE RECORD JOBS.
JOB_CODE .
WAGE_CLASS .
JOB_TITLE .
MINIMUM_SALARY .
MAXIMUM_SALARY .
JOB_STATUS .
END JOBS RECORD.
Now that the .rrd file has been modified, attempt to load the
record again:
$ RMU/LOAD MF_PERSONNEL/RMS=(FILE=JOBS.RRD, FORMAT=TEXT) -
_$ /FIELDS=(JOB_CODE, WAGE_CLASS, JOB_TITLE, MINIMUM_SALARY, -
_$ MAXIMUM_SALARY) JOBS JOBS.UNL
%RMU-I-DATRECSTO, 1 data records stored.
Example 16
The following example demonstrates the use of the Null="*" option
of the Record_Definition qualifier to signal to Oracle RMU that
any data that appears as an unquoted asterisk in the .unl file
should have the corresponding column in the database be flagged
as NULL.
The example shows the contents of the .unl file, followed by the
RMU Load command used to load this .unl file, and then the output
from an SQL statement to display the data loaded.
"98888","ABUSHAKRA","CAROLINE",*,"5 CIRCLE STREET","BOX 506",
"CHELMSFORD", "MA", "02184", "1960061400000000"#
"98889","BRADFORD","LEO",*,"4 PLACE STREET","BOX 555", "NASHUA","NH",
"03060", "1949051800000000"#
$ RMU/LOAD/FIELDS=(EMPLOYEE_ID, LAST_NAME, FIRST_NAME, -
_$ MIDDLE_INITIAL, ADDRESS_DATA_1, ADDRESS_DATA_2, -
_$ CITY, STATE, POSTAL_CODE, BIRTHDAY) -
_$ /RECORD_DEFINITION=(FILE= EMPLOYEES.RRD, -
_$ FORMAT=DELIMITED_TEXT, -
_$ TERMINATOR="#", -
-$ NULL="*" ) -
_$ MF_PERSONNEL EMPLOYEES EMPLOYEES.UNL
%RMU-I-DATRECREAD, 2 data records read from input file.
%RMU-I-DATRECSTO, 2 data records stored.
SQL> ATTACH 'FILENAME MF_PERSONNEL.RDB';
SQL> SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID > '98000'
cont> AND MIDDLE_INITIAL IS NULL;
EMPLOYEE_ID LAST_NAME FIRST_NAME MIDDLE_INITIAL
ADDRESS_DATA_1 ADDRESS_DATA_2 CITY
STATE POSTAL_CODE SEX BIRTHDAY STATUS_CODE
98888 ABUSHAKRA CAROLINE NULL
5 CIRCLE STREET BOX 506 CHELMSFORD
MA 02184 ? 14-Jun-1960 N
98889 BRADFORD LEO NULL
4 PLACE STREET BOX 555 NASHUA
NH 03060 ? 18-May-1949 N
2 rows selected
Example 17
The following example demonstrates the use of the Null="" option
of the Record_Definition qualifier to signal to Oracle RMU that
any data that is an empty string in the .unl file (as represented
by two commas with no space separating them) should have the
corresponding column in the database be flagged as NULL.
The example shows the contents of the .unl file, followed by the
RMU Load command used to load this .unl file, and then the output
from an SQL statement to display the data loaded.
"90021","ABUSHAKRA","CAROLINE","A","5 CIRCLE STREET",,
"CHELMSFORD", "MA", "02184", "1960061400000000"#
"90015","BRADFORD","LEO","B","4 PLACE STREET",, "NASHUA","NH",
"03030", "1949051800000000"#
$ RMU/LOAD/FIELDS=(EMPLOYEE_ID, LAST_NAME, FIRST_NAME, -
_$ MIDDLE_INITIAL, ADDRESS_DATA_1, ADDRESS_DATA_2, -
_$ CITY, STATE, POSTAL_CODE, BIRTHDAY) -
_$ /RECORD_DEFINITION=(FILE= EMPLOYEES.RRD, -
_$ FORMAT=DELIMITED_TEXT, -
_$ TERMINATOR="#", -
_$ NULL="") -
_$ MF_PERSONNEL EMPLOYEES EMPLOYEES.UNL
%RMU-I-DATRECREAD, 2 data records read from input file.
%RMU-I-DATRECSTO, 2 data records stored.
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL.RDB';
SQL> SELECT * FROM EMPLOYEES WHERE ADDRESS_DATA_2 IS NULL;
EMPLOYEE_ID LAST_NAME FIRST_NAME MIDDLE_INITIAL
ADDRESS_DATA_1 ADDRESS_DATA_2 CITY
STATE POSTAL_CODE SEX BIRTHDAY STATUS_CODE
90021 ABUSHAKRA CAROLINE A
5 CIRCLE STREET NULL CHELMSFORD
MA 02184 ? 14-Jun-1960 N
90015 BRADFORD LEO B
4 PLACE STREET NULL NASHUA
NH 03030 ? 18-May-1949 N
2 rows selected
Example 18
The following example is the same as Example 17 except it shows
the use of the default value for the Null option of the Record_
Definition qualifier to signal to Oracle RMU that any data that
is an empty string in the .unl file (as represented by two commas
with no space separating them) should have the corresponding
column in the database be flagged as NULL.
The example shows the contents of the .unl file, followed by the
RMU Load command used to load this .unl file, and then the output
from an SQL statement to display the data loaded.
"90022","ABUSHAKRA","CAROLINE","A","5 CIRCLE STREET",,
"CHELMSFORD", "MA", "02184", "1960061400000000"#
"90014","BRADFORD","LEO","B","4 PLACE STREET",, "NASHUA","NH",
"03030", "1949051800000000"#
$ RMU/LOAD/FIELDS=(EMPLOYEE_ID, LAST_NAME, FIRST_NAME, -
_$ MIDDLE_INITIAL, ADDRESS_DATA_1, ADDRESS_DATA_2, -
_$ CITY, STATE, POSTAL_CODE, BIRTHDAY) -
_$ /RECORD_DEFINITION=(FILE= EMPLOYEES.RRD, -
_$ FORMAT=DELIMITED_TEXT, -
_$ TERMINATOR="#", -
_$ NULL) -
_$ MF_PERSONNEL EMPLOYEES EMPLOYEES.UNL
%RMU-I-DATRECREAD, 2 data records read from input file.
%RMU-I-DATRECSTO, 2 data records stored.
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL.RDB';
SQL> SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID = '90022' OR
cont> EMPLOYEE_ID ='90014' AND ADDRESS_DATA_2 IS NULL;
EMPLOYEE_ID LAST_NAME FIRST_NAME MIDDLE_INITIAL
ADDRESS_DATA_1 ADDRESS_DATA_2 CITY
STATE POSTAL_CODE SEX BIRTHDAY STATUS_CODE
90014 BRADFORD LEO B
4 PLACE STREET NULL NASHUA
NH 03030 ? 18-May-1949 N
90022 ABUSHAKRA CAROLINE A
5 CIRCLE STREET NULL CHELMSFORD
MA 02184 ? 14-Jun-1960 N
2 rows selected
Example 19
The following example demonstrates the use of the Null option of
the Record_Definition qualifier to signal to Oracle RMU that any
data that is an empty string in the .unl file (as represented
by two commas with no space separating them) should have the
corresponding column in the database be flagged as NULL. In
addition, any column for which there is only data for the first
column or columns has the remaining columns set to NULL.
The example shows the contents of the .unl file, followed by the
RMU Load command used to load this .unl file, and then the output
from an SQL statement to display the data loaded.
"90026","ABUSHAKRA","CAROLINE","A","5 CIRCLE STREET","BOX 783",
"CHELMSFORD","MA", "02184", "1960061400000000"
"90011","BRADFORD","LEO",,,, "NASHUA","NH","03030","1949051800000000"
"90010"
"90009",,,,,,,,,"1966061600000000"
$ RMU/LOAD/FIELDS=(EMPLOYEE_ID, LAST_NAME, FIRST_NAME, -
_$ MIDDLE_INITIAL, ADDRESS_DATA_1, ADDRESS_DATA_2, -
_$ CITY, STATE, POSTAL_CODE, BIRTHDAY) -
_$ /RECORD_DEFINITION=(FILE= EMPLOYEES.RRD, -
_$ FORMAT=DELIMITED_TEXT, -
_$ NULL) -
_$ MF_PERSONNEL EMPLOYEES EMPLOYEES.UNL
%RMU-I-DATRECREAD, 5 data records read from input file.
%RMU-I-DATRECSTO, 5 data records stored.
$ SQL
SQL> ATTACH 'FILENAME MF_PERSONNEL.RDB';
SQL> SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID ='90026' OR
cont> EMPLOYEE_ID BETWEEN '90009' AND '90011';
EMPLOYEE_ID LAST_NAME FIRST_NAME MIDDLE_INITIAL
ADDRESS_DATA_1 ADDRESS_DATA_2 CITY
STATE POSTAL_CODE SEX BIRTHDAY STATUS_CODE
90009 NULL NULL NULL
NULL NULL NULL
NULL NULL ? 16-Jun-1966 N
90010 NULL NULL NULL
NULL NULL NULL
NULL NULL ? NULL N
90011 BRADFORD LEO NULL
NULL NULL NASHUA
NH 03030 ? 18-May-1949 N
90026 ABUSHAKRA CAROLINE A
5 CIRCLE STREET BOX 783 CHELMSFORD
MA NULL ? 14-Jun-1960 N
4 rows selected
Example 20
The following example demonstrates a parallel load operation.
In this example, three executors are specified because there are
three storage areas in the JOB_HISTORY table of the mf_personnel
database. The Defer_Index_Updates qualifier is used because there
are no constraints or triggers defined on the JOB_HISTORY table,
and it is known that no other database activity will occur when
this command is executed.
In addition, a plan file is generated to capture the
specification of this load operation. See the next example for
a description of the plan file.
Note that the pid provided in the output from this command is the
process ID.
$ RMU/LOAD/PARALLEL=(EXEC=3)/DEFER_INDEX_UPDATES mf_personnel.rdb -
_$ /RECORD_DEFINITION=(FILE=JOB_HIST,FORMAT=DELIMITED_TEXT, -
_$ EXCEPTION_FILE=DISK1:[ERRORS]JOB_HIST.EXC) -
_$ /STATISTICS=(INTERVAL=30)/LIST_PLAN=JOB_HISTORY.PLAN -
_$ JOB_HISTORY JOB_HIST.UNL
%RMU-I-EXECUTORMAP, Executor EXECUTOR_1 (pid: 2941941B) will load
storage area EMPIDS_LOW.
%RMU-I-EXECUTORMAP, Executor EXECUTOR_2 (pid: 2941F01D) will load
storage area EMPIDS_MID.
%RMU-I-EXECUTORMAP, Executor EXECUTOR_3 (pid: 2941C81F) will load
storage area EMPIDS_OVER.
--------------------------------------------------------------------------
ELAPSED: 0 00:00:30.05 CPU: 0:00:01.64 BUFIO: 59 DIRIO: 219 FAULTS: 2670
1640 data records read from input file.
1330 records loaded before last commit.
220 records loaded in current transaction.
0 records rejected before last commit.
0 records rejected in current transaction.
26 early commits by executors.
3 executors: 0 Initializing; 0 Idle; 0 Terminated
0 Sorting; 2 Storing; 1 Committing; 0 Executing
--------------------------------------------------------------------------
.
.
.
--------------------------------------------------------------------------
ELAPSED: 0 00:02:30.12 CPU: 0:00:02.94 BUFIO: 103 DIRIO: 227 FAULTS: 267
1
8070 data records read from input file.
7800 records loaded before last commit.
210 records loaded in current transaction.
0 records rejected before last commit.
0 records rejected in current transaction.
139 early commits by executors.
3 executors: 0 Initializing; 0 Idle; 0 Terminated
0 Sorting; 1 Storing; 2 Committing; 0 Executing
---------------------------------------------------------------------------
%RMU-I-EXECSTAT0, Statistics for EXECUTOR_1:
%RMU-I-EXECSTAT1, Elapsed time: 00:02:45.84 CPU time: 12.95
%RMU-I-EXECSTAT2, Storing time: 00:00:45.99 Rows stored: 2440
%RMU-I-EXECSTAT3, Commit time: 00:01:33.17 Direct I/O: 6623
%RMU-I-EXECSTAT4, Idle time: 00:00:22.34 Early commits: 47
%RMU-I-EXECSTAT0, Statistics for EXECUTOR_2:
%RMU-I-EXECSTAT1, Elapsed time: 00:02:48.42 CPU time: 18.10
%RMU-I-EXECSTAT2, Storing time: 00:01:24.98 Rows stored: 4319
%RMU-I-EXECSTAT3, Commit time: 00:01:18.13 Direct I/O: 9621
%RMU-I-EXECSTAT4, Idle time: 00:00:01.03 Early commits: 29
%RMU-I-EXECSTAT0, Statistics for EXECUTOR_3:
%RMU-I-EXECSTAT1, Elapsed time: 00:02:46.50 CPU time: 9.78
%RMU-I-EXECSTAT2, Storing time: 00:00:11.12 Rows stored: 2293
%RMU-I-EXECSTAT3, Commit time: 00:02:26.67 Direct I/O: 3101
%RMU-I-EXECSTAT4, Idle time: 00:00:04.14 Early commits: 77
%RMU-I-EXECSTAT5, Main process idle time: 00:02:41.06
%RMU-I-DATRECREAD, 9052 data records read from input file.
%RMU-I-DATRECSTO, 9052 data records stored.
%RMU-I-DATRECREJ, 0 data records rejected.
Example 21
The following command is the same as in the previous example,
except the Noexecute qualifier is specified. Because this
qualifier is specified, the load operation is not performed.
However, the load plan file is created and verified.
$ RMU/LOAD/PARALLEL=(EXEC=3)/DEFER_INDEX_UPDATES/NOEXECUTE -
_$ mf_personnel.rdb -
_$ /RECORD_DEFINITION=(FILE=JOB_HIST,FORMAT=DELIMITED_TEXT, -
_$ EXCEPTION_FILE=DISK1:[ERRORS]JOB_HIST.EXC) -
_$ /STATISTICS=(INTERVAL=30)/LIST_PLAN=JOB_HISTORY.PLAN -
_$ JOB_HISTORY JOB_HIST.UNL
Example 22
The following display shows the contents of the plan file,
JOB_HISTORY.PLAN, created in the preceding example. The following
callouts are keyed to this display:
1 The Plan Parameters include all the parameters specified on
the RMU Load command line and all possible command qualifiers.
2 Command qualifiers that are not specified on the command line
are sometimes represented as comments in the plan file. This
allows you to edit and adjust the plan file for future use.
3 Command qualifiers that are not specified on the command line
and for which there are defaults are sometimes represented
with their default value in the plan file.
4 Command qualifiers that are explicitly specified on the
command line are represented in the plan file as specified.
5 Executor Parameters are listed for each executor involved
in the load operation. Like the command qualifiers, both the
values you specify on the command line and those that are
allowed but were not specified are included in this list of
parameters.
6 Note that the exception file extension is appended with the
executor number. When you specify such files on the command
line, Oracle RMU generates a separate file for each executor.
If desired, you could edit this plan file to place each
exception file on a different disk or directory.
! Plan created on 20-JUL-1995 by RMU/LOAD.
Plan Name = LOAD_PLAN
Plan Type = LOAD
Plan Parameters:1
Database Root File = MF_PERSONNEL.RDB;
Table Name = JOB_HISTORY
Input File = JOB_HIST.UNL
! Fields = <all> 2
Transaction_Type = PROTECTED
! Buffers = <default>
Row_Count = 50 3
! Skip = <none>
NoLog_Commits
NoCorresponding
Defer_Index_Updates
Constraints
Parallel
NoPlace
Statistics = INTERVAL = 30 4
NoTrigger_Relations
Record_Definition_File = JOB_HIST
Format = Delimited_Text
Prefix = """"
Suffix = """"
NoNull
Separator = ","
End Of Line Terminator
End Plan Parameters
Executor Parameters: 5
Executor Name = EXECUTOR_1
! Place_Only = <none>
Exception_File = DISK1:[DATABASE]JOB_HIST.EXC_1; 6
! RUJ Directory = <default>
Communication Buffers = 4
End Executor Parameters
Executor Parameters:
Executor Name = EXECUTOR_2
! Place_Only = <none>
Exception_File = DISK1:[DATABASE]JOB_HIST.EXC_2;
! RUJ Directory = <default>
Communication Buffers = 4
End Executor Parameters
Executor Parameters:
Executor Name = EXECUTOR_3
! Place_Only = <none>
Exception_File = DISK1:[DATABASE]JOB_HIST.EXC_3;
! RUJ Directory = <default>
Communication Buffers = 4
End Executor Parameters
Example 23
The following example demonstrates the structure of the record
definition file (.rrd) for an RMU Load command for several
different data types. The first part of the example displays the
table definition, the second part shows the RMU Unload command
you could use to get an appropriate .rrd file for these data
types, and the last part shows the .rrd file definitions for
these data types:
SQL> attach 'filename data_types.rdb';
SQL> show table many_types;
Information for table MANY_TYPES
Columns for table MANY_TYPES:
Column Name Data Type Domain
----------- --------- ------
F_ID TINYINT
F_CHAR_3 CHAR(3)
F_TINYINT TINYINT
F_SMALLINT SMALLINT
F_INTEGER INTEGER
F_BIGINT BIGINT
F_NTINYINT TINYINT(1)
F_NSMALLINT SMALLINT(2)
F_NINTEGER INTEGER(7)
F_NBIGINT BIGINT(5)
F_REAL REAL
F_DOUBLE_PREC DOUBLE PRECISION
F_DATE_VMS DATE VMS
F_DATE_ANSI DATE ANSI
F_VARCHAR VARCHAR(20)
F_FLOAT REAL
F_DATE DATE VMS
F_TIME TIME
F_TIMESTAMP TIMESTAMP(2)
F_INTERVAL INTERVAL
DAY (2)
$ RMU/UNLOAD DATA_TYPES.RDB/RECORD_DEF=(FILE=MANY_TYPES.RRD) -
_$ MANY_TYPES MANY_TYPES.UNL
$ TYPE MANY_TYPES.RRD
DEFINE FIELD F_ID DATATYPE IS SIGNED BYTE.
DEFINE FIELD F_CHAR_3 DATATYPE IS TEXT SIZE IS 3.
DEFINE FIELD F_TINYINT DATATYPE IS SIGNED BYTE.
DEFINE FIELD F_SMALLINT DATATYPE IS SIGNED WORD.
DEFINE FIELD F_INTEGER DATATYPE IS SIGNED LONGWORD.
DEFINE FIELD F_BIGINT DATATYPE IS SIGNED QUADWORD.
DEFINE FIELD F_NTINYINT DATATYPE IS SIGNED BYTE SCALE -1.
DEFINE FIELD F_NSMALLINT DATATYPE IS SIGNED WORD SCALE -2.
DEFINE FIELD F_NINTEGER DATATYPE IS SIGNED LONGWORD SCALE -7.
DEFINE FIELD F_NBIGINT DATATYPE IS SIGNED QUADWORD SCALE -5.
DEFINE FIELD F_REAL DATATYPE IS F_FLOATING.
DEFINE FIELD F_DOUBLE_PREC DATATYPE IS G_FLOATING.
DEFINE FIELD F_DATE_VMS DATATYPE IS DATE.
DEFINE FIELD F_DATE_ANSI DATATYPE IS DATE ANSI.
DEFINE FIELD F_VARCHAR DATATYPE IS TEXT SIZE IS 20.
DEFINE FIELD F_FLOAT DATATYPE IS F_FLOATING.
DEFINE FIELD F_DATE DATATYPE IS DATE.
DEFINE FIELD F_TIME DATATYPE IS TIME.
DEFINE FIELD F_TIMESTAMP DATATYPE IS TIMESTAMP SCALE -2.
DEFINE FIELD F_INTERVAL DATATYPE IS INTERVAL DAY SIZE IS 2 DIGITS.
DEFINE RECORD MANY_TYPES.
F_ID .
F_CHAR_1 .
. . .
END MANY_TYPES RECORD.
Example 24
The following example shows part of a script for loading a copy
of the PERSONNEL database using the output from SQL EXPORT.
$! Export the database definition and the data
$ sql$ export database filename personnel into pers.rbr;
$
$! Create an empty database (use RMU Load to add data)
$ sql$ import database from pers.rbr filename copy_pers no data;
$
$! Now use load to add the same table
$ rmu/load copy_pers /match_name=employees employees pers.rbr
%RMU-I-DATRECREAD, 100 data records read from input file.
%RMU-I-DATRECSTO, 100 data records stored.
$
$ rmu/load copy_pers /match_name job_history pers.rbr
%RMU-I-DATRECREAD, 274 data records read from input file.
%RMU-I-DATRECSTO, 274 data records stored.
$
$ rmu/load copy_pers /match_name salary_history pers.rbr
%RMU-I-DATRECREAD, 729 data records read from input file.
%RMU-I-DATRECSTO, 729 data records stored.
$
.
.
.
$ rmu/load copy_pers /match_name work_status pers.rbr
%RMU-I-DATRECREAD, 3 data records read from input file.
%RMU-I-DATRECSTO, 3 data records stored.
Example 25
The following example shows that, by default, truncation errors
during a Load are reported.
$ rmu/load abc f2 f1
%RMU-I-LOADERR, Error loading row 1.
%RDB-E-TRUN_STORE, string truncated during assignment to a column
%RMU-I-DATRECREAD, 1 data records read from input file.
%RMU-I-DATRECSTO, 0 data records stored.
%RMU-F-FTL_LOAD, Fatal error for LOAD operation at 13-FEB-2008 15:39:44.40
$
Example 26
The following example shows the use of the /VIRTUAL_FIELDS
qualifier. The values of the INTEGER field A and the AUTOMATIC
field B are first unloaded into the AA.UNL file from the RMU_
LOAD_AUTOMATIC_4_DB database table AA using the /VIRTUAL_
FIELDS qualifier. Then the values of the INTEGER field A and
the AUTOMATIC field B in the AA.UNL file are loaded into the AA
table in the RMU_LOAD_AUTOMATIC_4_DB2 database.
$ SQL
create database
filename RMU_LOAD_AUTOMATIC_4_DB;
-- create a sequence and a table
create sequence S increment by -1;
create table AA
(a integer
,b automatic as s.nextval);
-- load 10 rows
begin
declare :i integer;
for :i in 1 to 10
do
insert into AA (a) values (:i);
end for;
end;
commit;
disconnect all;
$ exit
$ rmu/unload-
/virtual=(automatic)-
/record=(file=rr,format=delim)-
RMU_LOAD_AUTOMATIC_4_DB aa aa.unl
%RMU-I-DATRECUNL, 10 data records unloaded.
$
$
$! Load using /VIRTUAL
$ rmu/load-
/record=(file=rr,format=delim)-
/virtual-
RMU_LOAD_AUTOMATIC_4_DB2 aa aa.unl
%RMU-I-DATRECREAD, 10 data records read from input file.
%RMU-I-DATRECSTO, 10 data records stored.
$