Skip to Main Content

SQL Developer Data Modeler

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Underlying xml file corruption resulting from "Discover Implied Foreign Keys" process

David WagnerDec 2 2024

Hello,

Does anyone know anything about the following bug I'm experiencing in Oracle Data Modeler 24.3.0.240 Build 240.1210 and perhaps a workaround?

When using the "Discovering Implied Foreign Keys" operation, selecting at least one result from the list of discovered foreign keys, and creating it as an “Implied Foreign Key”:

It appears to corrupt the data model in the following file, which results in the following error upon the next subsequent loading of the model.

"Some objects are not loaded correctly. See the log file for details"

2024-12-02 11:36:21 SEVERE - Can not parse file: C:\Oracle\Brady_ERD\rel\D7612B7C-63E7DA95F01B\subviews\78B39ED0-7246-80FC-20DD-7CE11D5F2521.xml
oracle.xml.parser.v2.XMLParseException; lineNumber: 946; columnNumber: 2; '<' cannot appear in attribute value.
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:326)
at oracle.xml.parser.v2.XMLReader.scanNameChars(XMLReader.java:1313)
at oracle.xml.parser.v2.XMLReader.readQName(XMLReader.java:2156)
at oracle.xml.parser.v2.NonValidatingParser.parseAttr(NonValidatingParser.java:1863)
at oracle.xml.parser.v2.NonValidatingParser.parseAttributes(NonValidatingParser.java:1813)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1650)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:473)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:419)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:257)
at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:181)
at oracle.dbtools.crest.model.metadata.XMLTransformationManager.getDesignPartInfo(XMLTransformationManager.java:2436)
at oracle.dbtools.crest.model.metadata.XMLTransformationManager.recreateObjectList(XMLTransformationManager.java:2670)
at oracle.dbtools.crest.model.metadata.XMLTransformationManager.openDesignPartManyFiles(XMLTransformationManager.java:3288)
at oracle.dbtools.crest.model.metadata.XMLTransformationManager.openDesignPart(XMLTransformationManager.java:2997)
at oracle.dbtools.crest.model.design.Design.openDesign(Design.java:1612)
at oracle.dbtools.crest.swingui.ControllerApplication$Recent$1.run(ControllerApplication.java:5085)

It's clear that the Connector line is interrupted, and doesn't have the complete line for the Implied Foreign Key, also missing the closing Tag </Connector>. Here is the corrupt section:

<Connector class="oracle.dbtools.crest.swingui.relational.TVImpliedForeignKey" oid="
<points>
<point x="1597" y="4052"/>
<point x="182" y="2546"/>
</points>
</>
</connectors>
</Diagram>

If I manually create an Implied Foreign Key rather than creating it from the results of the "Discover Implied Foreign Keys" process, the full <Connector> line is created properly, with all relevant information, and everything works fine. But I really need to rely on the “Discovery” process as I have too many to create manually.

Any ideas?

Thanks,

David

Comments

thatJeffSmith-Oracle Feb 13 2025

Your ENTRA users will get authenticated via JSON Web Tokens, and their Entra roles will determine which ORDS REST APIs they can hit.

When they hit an endpoint, it'll execute code in the database as the database user that owns the schema where the REST API is defined, not as Entra defiend end user. In fact, the Entra users won't have accounts in the database (they could, but wont' need to).

The :current_user field as far as ords is concerned would be the corresponding oauth2 client or JWT issued for the authorizied session.

Your prehook should be able to alter the session to set the context that would put your RLS/VPD security policy in play.

1 - 1

Post Details

Added on Dec 2 2024
3 comments
71 views