Reverse‑Engineer an Oracle Schema in SQL Developer Data Modeler
Learn how to import an Oracle database into SQL Developer Data Modeler, verify the generated model, and recover if the import fails or overwrites your work.
05 Sept 2026, 14:47 UTC

Desired outcome
Create a relational data model in SQL Developer Data Modeler that accurately reflects the tables, columns, constraints, indexes, and views of an existing Oracle schema. The model can be used for documentation, impact analysis, or further design work.
Necessary prerequisites
- SQL Developer (version that includes Data Modeler, typically 4.1 or later) installed and able to launch.
- A working database connection in SQL Developer that points to the target Oracle Database (11g Release 2 or newer).
- The database user associated with that connection must have at least the
SELECT ANY DICTIONARYprivilege, or sufficient schema‑level privileges to read the data dictionary for the objects you intend to import. - Optional but recommended: an existing Data Modeler design that you have saved or exported, so you can revert if the import overwrites work you want to keep.
Focused procedure
- Open SQL Developer and ensure the connection is active. In the Connections pane, right‑click the Oracle connection and choose Connect if it is not already.
- Launch the Import wizard. From the main menu select Tools → Data Modeler → Import → Data Dictionary.
- Select the connection. In the first wizard page, pick the Oracle connection you verified in step 1 and click Next.
- Choose the schema and objects.
- Select the schema (e.g.,
HR) from the dropdown. - Use the Available Objects list to filter by object type (Tables, Views, Indexes, etc.) and move the desired items to the Selected Objects pane.
- For large schemas, consider limiting the selection to a subset (e.g., only tables needed for a specific analysis) to reduce memory usage and import time.
- Select the schema (e.g.,
- Set import options. Accept the defaults (import constraints, indexes, and views) unless you have a specific reason to exclude them. Click Next.
- Finish the wizard. Review the summary, then click Finish. SQL Developer will query the data dictionary and create a relational model.
- Save the model. Immediately after the import completes, choose File → Save to store the Data Modeler design (.dmd file). This provides a restore point if you need to roll back later.
Expected checks and verification
- Open the logical model. In the Data Modeler browser, expand the Logical Model node and verify that each selected table appears as an entity with the correct columns, data types, and any nullable/not‑null settings.
- Check relationships. Ensure that foreign‑key constraints imported from the database are shown as relationships between entities. Missing relationships often indicate privilege gaps or filtered objects.
- Run the Design Rules checker. Choose Tools → Data Modeler → Design Rules. Run the default rule set; note any critical violations (e.g., unresolved many‑to‑many relationships) and address them before proceeding with further design work.
- Export for visual inspection. Select File → Export → Model → PDF (or an image format) and open the exported file. Confirm that the diagram includes all expected entities and that no unexpected objects appear.
Recovery options
The import wizard overwrites the current Data Modeler design without warning. If the import fails, produces incomplete results, or you simply wish to revert to a previous state:
- Check the import log. After the wizard finishes, a log window appears; review it for error messages (e.g., insufficient privileges, time‑outs).
- Verify privileges. Ensure the connecting user has
SELECT ANY DICTIONARYor the necessary schema privileges. If missing, grant them (or have a DBA do so) and retry. - Retry with a smaller object set. For very large schemas, try importing a subset of tables first to confirm the process works, then gradually add more objects.
- Roll back to a saved design. If you saved or exported the design before importing (step 5 of the procedure), simply close the current design without saving and reopen the saved file, or use File → Import → Data Modeler Design to restore it.
- Clear the model. To start fresh without closing SQL Developer, choose File → New → Data Modeler Design; this creates an empty model you can populate again.
Limitations
- Memory consumption grows with the number of objects; importing thousands of tables may cause slowdowns or out‑of‑memory errors on machines with limited RAM.
- The wizard does not import PL/SQL code (packages, procedures, triggers). Those objects must be reverse‑engineered separately if needed.
- Only objects visible to the connecting user’s privileges are imported; missing privileges lead to silent omission rather than an explicit error.
By following the steps above, you can reliably reverse‑engineer an Oracle schema into a usable Data Modeler model, verify its correctness, and recover gracefully if something goes wrong.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.