Home » RDBMS Server » Server Utilities » ORA-02374/ORA-01722/ORA-02372 while importing a 11.2.0.4-Dump into 12.1.0.2 (Oracle 12.1.0.2, Windows 2008 R2)
ORA-02374/ORA-01722/ORA-02372 while importing a 11.2.0.4-Dump into 12.1.0.2 [message #653764] |
Mon, 18 July 2016 08:03 |
|
opm_yann
Messages: 2 Registered: July 2016 Location: Switzerland
|
Junior Member |
|
|
Hello!
We want to migrate our databases (first only our test db's) vom 11g to 12c. Well, I do an expdp from 11.2.0.4 without any problem, then I try to impdp the dump I got into the new database.
Unfortunately I get thousands of errors, always the same structure, like this:
ORA-02374: Konvertierungsfehler beim Laden von Tabelle "BELVIS2002"."TSD_WNMIN195"
ORA-01722: Ungültige Zahl
ORA-02372: Daten für Zeile: VALUE1 : '-~'
This message appears so often, that impdp crashes.
I do apologize for the german error messages, but I think everyone knows the errors. I found them very often via Google. But never with the problem I have in this case, the '-~'.
To explain it: The table "TSD_WNMIN195" is a very big table, as it contains timeseries-data, so there may be easily millions of lines with each 96 float values (fields VALUE1-VALUE96).
I know, that the main problem is because of negative values. But what exactly does '-~' mean? I couldn't find any informations on the internet.
The only workaround I have so far, is to - before expdp - rewrite all negative values to 0 (=zero), then expdp and impdp works really fine, without any problem. I can do that with our test databases, but not with customer databases, it would destroy very important data.
Can anyone help me with that problem?
Best regards
Yann
|
|
|
|
|
|
|
|
|
Re: ORA-02374/ORA-01722/ORA-02372 while importing a 11.2.0.4-Dump into 12.1.0.2 [message #654305 is a reply to message #654299] |
Fri, 29 July 2016 11:21 |
|
Michel Cadot
Messages: 68733 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
These are binary float numbers (single and double) not the same than NUMBER number(!):
SQL> WITH DATA AS(SELECT -1/0F COL FROM DUAL)
2 select dump(col), dump(1/0F), dump(-binary_double_infinity) from data;
DUMP(COL) DUMP(1/0F) DUMP(-BINARY_DOUBLE_INFINITY)
---------------------------- -------------------------- -------------------------------------------
Typ=100 Len=4: 0,127,255,255 Typ=100 Len=4: 255,128,0,0 Typ=101 Len=8: 0,15,255,255,255,255,255,255
Minus infinite (-~) is a NUMBER number (type 2) with internal value a single byte to 0. I don't know if Oracle sees them as equal but it is worth to try it.
(Note the strange thing that happens to the internal representation of 1/0F.)
|
|
|
Goto Forum:
Current Time: Fri Feb 07 00:39:01 CST 2025
|