We successfully imported most of our interface table rows and want to delete them. However, we want to leave rows that were not fully imported so that we can examine and correct them. How can we do this?

Each interface table imports data into one or more target base tables.

For example, EIM_ACCOUNT imports into S_ORG_EXT, S_ACCNT_POSTN, S_ADDR_ORG, S_ORG_INDUST, S_ORG_PROD, S_ORG_REL, S_ORG_SYN, S_ORG_TYPE, S_TERR, and S_TERR_ITEM.

Each interface table includes a separate temporary column that contains a status code for each base table into which it has imported data. The names of these columns are contractions of the target base table name.

For example, T_ORG_EXT__STA. T_ indicates that this is a temporary column; ORG_EXT is the first three letters of each word in the target base table name (S_ORG_EXT), and __STA indicates that this is the status column. Note that the extension begins with two underscores.

During import, a row’s status column is set to 0 for those tables into which the row was successfully imported. The IF_ROW_STAT is set to IMPORTED if a row is successfully imported into all target base tables, or PARTIALLY IMPORTED if it is successfully imported into at least one target.

To delete rows that were successfully imported into all target base tables, you could use the following SQL statement: 

delete from EIM_ACCOUNT where (IF_ROW_STAT = 'IMPORTED')

 To delete rows that were successfully imported into specific target base tables, you could use the following SQL statement: 

delete from EIM_ACCOUNT where (IF_ROW_STAT = 'PARTIALLY_IMPORTED' and T_ORG_EXT__STA = 0 and T_ADDORG__STA = 0)

You can also use ONLY BASE TABLES to limit processing.

Tags