non unique value error... pgsql,,help needed.
Dear friends,
I am trying to import db from oracle to pgsql,
meanwhile facing a difficulty during importing oracle numeric(38) to pgsql
numeric(38) column, Because in oracle that column is unique, but PGsql not
able to correctly identify different and unique values with numeric(38)
field.
for eg.
column: a numeric(38) primary
giving me error of non unique value in following two data.
1. 111122223333444455556666777788889999
2. 111122223333444455556666777788889997 (<----- both are different.)
When i enter first data into column (using EMS SQL MANAGER),it converts it
to 1.11122223333444E35
and same way second data is converted to the same, so both got matches and
it gives me error of non unique rows.
can somebody please advise how to tackle with this,, as this column will be
used to join to another table,, i cant convert it to varchar,
is this happening due to some fault in pgsql ? EMS SQL MANAGER ? or ME :-)
In response to Shri :
Dear friends,
I am trying to import db from oracle to pgsql,
meanwhile facing a difficulty during importing oracle numeric(38) to pgsql
numeric(38) column, Because in oracle that column is unique, but PGsql not able
to correctly identify different and unique values with numeric(38) field.for eg.
column: a numeric(38) primary
giving me error of non unique value in following two data.
1. 111122223333444455556666777788889999
2. 111122223333444455556666777788889997 (<----- both are different.)When i enter first data into column (using EMS SQL MANAGER),it converts it
to 1.11122223333444E35
Can you try to insert such values with plain psql? I have tried that and
it works without trouble:
test=# create table foo (id serial, n numeric(38));
NOTICE: CREATE TABLE will create implicit sequence "foo_id_seq" for serial column "foo.id"
CREATE TABLE
test=*# insert into foo (n) values (111122223333444455556666777788889999);
INSERT 0 1
test=*# select * from foo;
id | n
----+--------------------------------------
1 | 111122223333444455556666777788889999
(1 row)
test=*# insert into foo (n) values (111122223333444455556666777788889997);
INSERT 0 1
test=*# select * from foo;
id | n
----+--------------------------------------
1 | 111122223333444455556666777788889999
2 | 111122223333444455556666777788889997
(2 rows)
test=*#
Which version do you have?
I think, it's a problem with EMS SQL MANAGER, but i don't know that tool.
Regards, Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net