Ansicht
Dokumentation

ORACLE DB error -1438 at client copy of Tab KNA1 <br />Tip-No.: 3034 ( INFO3034 )

ORACLE DB error -1438 at client copy of Tab KNA1
Tip-No.: 3034 ( INFO3034 )

General Data in Customer Master   BAL_S_LOG - Application Log: Log header data  
This documentation is copyright by SAP AG.
SAP E-Book

Short text

ORACLE DB error -1438 at client copy of Tab KNA1
Tip-No.: 3034

Symptom

Table KNA1 contains NULL values in the field UMSAT (which was probably
added to with ADD-field) in client X. A client copy was executed using
R3trans (complete for all tables, including application tables such as
e.g. KNA1 and BSIK). When attempt is made to copy KNA1 records, the
ORACLE error -1438 occurs:
"value larger than specified precision allows for this column".
(Same could also affect BSIK - Field QSFBT, though has not yet
occurred).

Cause

Error in dbtrtab.sql:conv_row(). This function is called when reading.
When NULL values are encountered, it sets the relevant memory area to
its initial value. The field KNA1-UMSAT is of Type 'PACKED' (TYPP
or DDIC_PACK) and therefore should have been initialized with
0x00..000c.
It was, however, incorrectly set to
0x20..200c
(code has memset(..,' ',..) instead of memset(..,0,..).
This incorrect initial value is exported during client copy and then
attempt is made to import. The number 20..20, which is an acceptable
ORACLE form, is too large for the data base field and leads the error.

Described situation occurs also in separate R3trans export and import.
The RTAB interface is, in addition to R3trans, also use in SM31. This
is why fields added to using ADD-FIELD (packed fields) can produce
incorrect output (20..20 instead of 0).

Solution

Before clientcopy/export, set NULL values of packed fields to 0 using
SQLPLUS or EXEC SQL. E.g. for KNA1:
UPDATE KNA1 SET UMSAT = 0 WHERE UMSAT IS NULL;
(SQLPLUS) or
EXEC SQL.
UPDATE KNA1 SET UMSAT = 0 WHERE UMSAT IS NULL
ENDEXEC.

If occurred with Table BSIK:
UPDATE BSIK SET QSFBT = 0 WHERE QSFBT IS NULL

Correction B11K008730 cures error in dbtrtab.sql
(memset(..,0,..)|). On 22.12.1992, this minimal correction was also
inserted into Rel. Level 11F, 11G, 11H.
All tapes for 1.1H, that were created and dispatched before 29.12.92,
have been brought up to date.






Fill RESBD Structure from EBP Component Structure   General Data in Customer Master  
This documentation is copyright by SAP AG.

Length: 2268 Date: 20240416 Time: 192742     sap01-206 ( 18 ms )