Closed Ahuri3 closed 8 years ago
I just updated to Ora2pg 17.3 and my issue is still there.
Hi,
I guess that indexes EVE_IDX1 and EVE_IDX14 are used by a primary key or other constraints, in this case they will be automatically created by PostgreSQL. Can you post here the definition of the table and iindexes under Oracle?
Thank you for you fast answer !
Here is the definition fo the INDEX EVE_IDX1:
CREATE UNIQUE INDEX "GNXDUP"."EVE_IDX1" ON "GNXDUP"."EVE" ("CODSOC", "ACHVTE",
"TYPEVE", "NUMEVE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING
STORAGE(INITIAL 182452224 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "CENSORED"
And the table :
select DBMS_METADATA.GET_DDL('TABLE','EVE','GNXDUP') from DUAL;
CREATE TABLE "GNXDUP"."EVE"
( "ACHVTE" VARCHAR2(1),
"TYPEVE" VARCHAR2(3),
"NUMEVE" NUMBER(*,0),
"SIGTIE" VARCHAR2(12),
"TYPTIE" VARCHAR2(3),
"NUMVER" NUMBER(*,0),
"DATEVE" VARCHAR2(8),
"DATVAL" VARCHAR2(8),
"DATCRE" VARCHAR2(8),
"DATLIV" VARCHAR2(8),
"TYPEVO" VARCHAR2(3),
"NUMEVO" NUMBER(*,0),
"NBRFAC" NUMBER(*,0),
"TYPFAC" NUMBER(*,0),
"CODURG" NUMBER(*,0),
"CODETA" VARCHAR2(1),
"CODCTG" VARCHAR2(2),
"REFEXT" VARCHAR2(16),
"NUMCNT" VARCHAR2(9),
"CODDEV" VARCHAR2(3),
"PARDEV" NUMBER,
"NUMADR" NUMBER(*,0),
"MODLIV" VARCHAR2(3),
"SIGTRA" VARCHAR2(12),
"MODTRA" VARCHAR2(2),
"NBRREL" NUMBER(*,0),
"NUMREL" NUMBER(*,0),
"DATACO" VARCHAR2(8),
"MONACO" NUMBER,
"TAUESC" NUMBER,
"DATCLI" VARCHAR2(8),
"CODBLO" VARCHAR2(1),
"DATBLO" VARCHAR2(8),
"EXICVC" VARCHAR2(1),
"EXICVM" VARCHAR2(1),
"EXITXT" VARCHAR2(1),
"CUMHT" NUMBER,
"CUMTTC" NUMBER,
"SIGREP" VARCHAR2(12),
"CODANA" VARCHAR2(6),
"MODRGL" VARCHAR2(2),
"DELRGL" NUMBER(*,0),
"CODDPT" VARCHAR2(1),
"CODQUA" NUMBER(*,0),
"TOTCOL" NUMBER(*,0),
"SIGDEP" VARCHAR2(12),
"DATMOD" VARCHAR2(8),
"UTIMOD" VARCHAR2(8),
"POSFIS" VARCHAR2(1),
"TOTHT" NUMBER,
"CODTVA" VARCHAR2(1),
"CUMPR" NUMBER,
"LIBCOM" VARCHAR2(30),
"TAUREM" NUMBER,
"MONREM" NUMBER,
"CODANA1" VARCHAR2(6),
"CODANA2" VARCHAR2(6),
"TAUCOM" NUMBER,
"TYPREM" VARCHAR2(1),
"ACHVTO" VARCHAR2(1),
"PERFAC" VARCHAR2(1),
"CAMION" VARCHAR2(10),
"INDAPR" VARCHAR2(1),
"TOTTTC" NUMBER,
"DATEDI" VARCHAR2(8),
"INDEDI" VARCHAR2(1),
"INDSOL" VARCHAR2(1),
"ACHVTS" VARCHAR2(1),
"TYPEVS" VARCHAR2(3),
"NUMEVS" NUMBER(*,0),
"PEREVE" NUMBER(*,0),
"PERLIV" NUMBER(*,0),
"INDEPU" VARCHAR2(1),
"CODBAR" VARCHAR2(3),
"DATEXP" VARCHAR2(8),
"PERVAL" NUMBER(*,0),
"PEREXP" NUMBER(*,0),
"ANNEVE" NUMBER(*,0),
"ANNLIV" NUMBER(*,0),
"ANNVAL" NUMBER(*,0),
"ANNEXP" NUMBER(*,0),
"ACHBCH" VARCHAR2(1),
"TYPBCH" VARCHAR2(3),
"NUMBCH" NUMBER(*,0),
"INDINT" VARCHAR2(1),
"DELLIV" NUMBER(*,0),
"DELENG" NUMBER(*,0),
"SIGMAG" VARCHAR2(12),
"DATRGL" VARCHAR2(8),
"CODTRN" VARCHAR2(6),
"CODPOS" VARCHAR2(5),
"MONREMFAC" NUMBER,
"TAUREM2" NUMBER,
"TAUREM3" NUMBER,
"DATENG" VARCHAR2(8),
"SIGACT" VARCHAR2(12),
"GELEVE" VARCHAR2(1),
"POSHIE" NUMBER(*,0),
"EDITRT" VARCHAR2(1),
"SIGVAL" VARCHAR2(12),
"ORDEVS" NUMBER(*,0),
"BATIMENT" VARCHAR2(2),
"TYPLIV" VARCHAR2(3),
"SIGLIV" VARCHAR2(12),
"NUMATT" NUMBER(*,0),
"CODSOC" NUMBER(*,0),
"MODLOC" VARCHAR2(30),
"FACREL" VARCHAR2(1),
"CODASS" VARCHAR2(6),
"EDICTS" VARCHAR2(1),
"RELICA" VARCHAR2(1),
"ETBCOD" VARCHAR2(3),
"ETSSTATUT" VARCHAR2(1),
"ACHVTT" VARCHAR2(1),
"CODSIT1" VARCHAR2(3),
"NUMVOY" NUMBER(*,0),
"NUMFIL" NUMBER(*,0),
"TAUAGIO" NUMBER,
"MONESC" NUMBER,
"MONAGIO" NUMBER,
"TAUESCD" NUMBER,
"NCOTAT" NUMBER(*,0),
"TAUCA" NUMBER,
"P_RIBCOD" VARCHAR2(3),
"P_ECRNUM" NUMBER(*,0),
"CODEOP" VARCHAR2(12),
"NUMADR_I" NUMBER(*,0),
"ACHVTEISE" VARCHAR2(1),
"TYPISE" VARCHAR2(3),
"NUMISE" NUMBER(*,0),
"SIGTRS" VARCHAR2(12),
"NUMLCR" NUMBER(*,0),
"BATVOL" VARCHAR2(30),
"CMPNIE" VARCHAR2(30),
"NLTA" VARCHAR2(30),
"DATDEP" VARCHAR2(8),
"DATARR" VARCHAR2(8),
"HEUARR" VARCHAR2(8),
"HEUDEP" VARCHAR2(8),
"GUIDRGL" VARCHAR2(3),
"ACHVTE_CAT" VARCHAR2(1),
"CODCAT" VARCHAR2(6),
"HEUEXP1" NUMBER,
"HEUEXP2" NUMBER,
"HEUEVE" NUMBER,
"HEUVALI" NUMBER,
"HEULIV1" NUMBER,
"HEULIV2" NUMBER,
"TYPGEL" VARCHAR2(1),
"NUMGEL" NUMBER(*,0),
"CODRGM" VARCHAR2(1 CHAR),
"CODVHC" VARCHAR2(1 CHAR),
"CHRONO" NUMBER(*,0),
"NUMCTC" NUMBER(*,0),
"TYPCPR" VARCHAR2(3 CHAR),
"CODCB" VARCHAR2(25 CHAR),
"STATUT6" VARCHAR2(6 CHAR),
"MODAPPRO" VARCHAR2(1 CHAR),
"SIGLIE_EMB" VARCHAR2(12 CHAR),
"SIGLIE_DEB" VARCHAR2(12 CHAR),
"CODPAY_DEP" VARCHAR2(3 CHAR),
"CODPAY_EMB" VARCHAR2(3 CHAR),
"CODPAY_DEB" VARCHAR2(3 CHAR),
"CODJAL" VARCHAR2(6 CHAR),
"INDFAC" VARCHAR2(1 CHAR),
"ACHVTA" VARCHAR2(1 CHAR),
"TYPEVA" VARCHAR2(3 CHAR),
"NUMEVA" NUMBER(*,0),
CONSTRAINT "EVE_IDX1" PRIMARY KEY ("CODSOC", "ACHVTE", "TYPEVE", "NUMEVE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING
STORAGE(INITIAL 182452224 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "POCORA" ENABLE,
CONSTRAINT "EVE_IDX14" UNIQUE ("CODSOC", "NUMLCR", "ACHVTE", "TYPEVE", "NUMEVE
")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING
STORAGE(INITIAL 240123904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "POCORA" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 783728640 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "CENSORED"
So it looks like there are indeed CONSTRAINTs. So the indexes will automatically created by PostgreSQL ?
Yes, PostgreSQL create an implicite index when a primary key is defined, this is why the index is not exported. In the CONSTRAINTS_table.sql file you will see the PRIMARY KEY definition.
To check that every thing is the same you can use the TEST export type, Ora2Pg will compare the number of indexes and constraints between source and destination database. See documentation for more explanation.
Thank you very much !
Hi! Master, I have the same problem, what document should I see?
Hello,
I am migrating an Oracle database to PostgreSQL and ora2pg seems to ¨skip¨ some indexes (and I don´t know why).
Here is an example with one of my tables :
Oracle :
PostgreSQL :
The indexes EVE_IDX1 and EVE_IDX14 are missing.
I used the script : export_schema.sh to export the tables.
I investigated one of the index : EVE_IDX1 to see if there was something strange going on and it´s a classic B-tree index.
I looked at other tables and my EVE table is not an isolated case, some indexes just seem to be ¨missed¨ by ora2pg.
My version of ora2pg : 17.1 My version of Oracle :
Here is a diff of my ora2pg.conf file and a "untouched" one :
I tried doing the export in VERBOSE but I got nothing of value :
Do you have any idea why some indexes are "ignored" by ora2pg ?