java.lang.RuntimeException: can't parse primary-key: UIDACCT
Database Subsetter and Relational Data Browser
Brought to you by:
rwisser
Get a runtime error when running "Introspect DB" with Jailer version 2.9.9. Database is Oracle 9.2.0.8.0
java.lang.RuntimeException: can't parse primary-key: UIDACCTVAP
at net.sf.jailer.datamodel.Column.parse(Column.java:160)
at net.sf.jailer.datamodel.DataModel.<init>(DataModel.java:239)
at net.sf.jailer.datamodel.DataModel.<init>(DataModel.java:216)
at net.sf.jailer.modelbuilder.ModelBuilder.build(ModelBuilder.java:225)
at net.sf.jailer.Jailer.jailerMain(Jailer.java:1117)
at net.sf.jailer.ui.UIUtil$4.run(UIUtil.java:316)
at java.lang.Thread.run(Unknown Source)
Anonymous
Export.log file
Have same schema on an Oracle 10.2 database, and everything works ok.
Hi,
I would like to take a look into the files 'datamodel\model-builder-table.csv' and 'datamodel\model-builder-table.csv'. Please reproduce the exception and then attach the two files
Thanks in advance,
Ralf
model-builder-table.csv
model-builder-column.csv'
Ralf,
Files attached. I assume you meant model-builder-column.csv as well.
Thanks.
jailer.log
Hi,
thank you very much. It seems that the table EDFACCTVAP2 causes the exception because it was not possible to determine the type of the primary key. What's the type of the column EDFACCTVAP2.UIDACCTVAP?
Hi,
I found out that the oracle driver's implementation of DatabaseMetaData#getColumns returns an empty set if it's applied to a synomym. Is "EDFACCTVAP2" a synonym for another table? If it is so, please try the patch which you can download at http://jailer.sf.net/jailer.jar
Ralf,
No, it's not a synonym, but I did some more investigation and it appears EDFACCTVAP2 was a table that had been previously dropped and for some reason was still appearing in "ALL_OBJECTS", so perhaps a corrupted database? I rebuilt the schema, which didn't include EDFACCTVAP2 and now everything works fine. So, I guess Jailer was seeing the table in a location such as "ALL_OBJECTS", and then couldn't find the table details later. My apologies for this wild goose chase...
The next release will be more robust in such cases and will give more precise error messages.