So you just got your brand new machine at work. Party time, excellent*!

And, your friendly neighborhood IT guy even moved over all of your softwares, including SQL Developer.

But when you go to use it, none of your connections are there.

Or maybe the connections are there, but the connection passwords ARE not.

And really, who has the discipline to have 300 different passwords for all of the databases memorized and ready to recall at a moment’s notice? I thought so.

So, without further ado, here’s how to move those connections WITH their passwords intact, from your old machine to your new one.

Export Your Existing Connections

Right click on the connection tree - top bit of the tree that is
Right click on the connection tree – top bit of the tree that is
Select your connections to export
Select your connections to export

Save to an XML file
Save to an XML file
Provide a secure 'key' - you are password protecting your passwords and will need to know this 'later'
Provide a secure ‘key’ – you are password protecting your passwords and will need to know this ‘later’
yada, yada, yada - click OK/Finish
yada, yada, yada – click OK/Finish

Import Them Back

Get that XML file you just generated to your new machine. I just emailed it to myself, probably not the most secure thing in the world, but I’m just playing around here.

So on my new mac - so lonely, only 1 connection - I want to 'Import'
So on my new mac – so lonely, only 1 connection – I want to ‘Import’
Point it to the XML file and then you'll be prompted for the KEY
Point it to the XML file and then you’ll be prompted for the KEY
Select the connections to import
Select the connections to import

Note that I’m telling it to RENAME connections coming in if there’s a conflict – I don’t want to lose anything I already have. I’m not that creative with my connection names, so I’m taking the safe route here.

Voila! My connections are in! And the folder structure and passwords are both intact.
Voila! My connections are in! And the folder structure and passwords are both intact.

Happy Jeff! And happy DBAs that don’t have to reset my 300+ passwords.

A Few More Connection Things You Should Know

Author

I'm a Distinguished Product Manager at Oracle. My mission is to help you and your company be more efficient with our database tools.

78 Comments

  1. Srinivasan Reply

    Thank you Jeff.
    Just followed your instructions and it worked perfectly well for all my connections.
    I had to transfer multiple connections within the same PC from one login profile to another and your instructions helped me a lot to do it without any errors or waste of time.

  2. Worked like a charm. exactly as described. Luckily I still had my old laptop and simply saved the export file to OneDrive and picked it up on my new machine. Thank you!

  3. Thank you Jeff, greatly appreciated!

    This worked perfectly when going from SQLDeveloper 17.2.0.188 to 19.2.1.247

  4. John Pallot Reply

    Dibs global replace comment did not work for me. I suggest that you export just one connection from your target SQL developer. Look in the file (file 1) created to see what classnames are used for the DatabaseProvider/DatabaseProviderFactory. Go to the file of connections created from your source SQL developer and change all the relevant classname entries to make them consistent with File 1.

  5. Hi Jeff,

    Running with v 17.4 in the pull down menu I don’t have export or Import connections as options. Could shed some light?

    • right click on the top level connections node in the tree, should be right under the ‘New’ item on the Context menu

  6. David Pasternak Reply

    Hi Jeff,

    I’m using SQL Developer 18.4 and I’m just missing the option, that all created folders will be also exported with my connections…..

    Thanks and best regards,
    David

  7. Hi Jeff
    I have a problem. I did import connections with passwords. And they work fine.
    But everytime I shut down and restart sql developer. The password is gone. Once I do a import and replace the password is restored.

    I am not sure what I have been doing wrong.

    Regards

    • Sounds like we can’t write to the file – make sure you you have read/WRITE privs on your application settings directory.

  8. Funny, I’ve never worked in an office where they give you your new machine without already taking away the old one. These instructions don’t help as much in that case. I *did* get my old hard drive back, thank goodness. I had one of the IT guys hook it up as an external drive for me for a while. In that case, you need to find the location of your old “connections.xml” file. It’s probably in the old drive’s \users\\appdata\roaming\SQL Developer folder. Find your new machines c:\users\\appdata\roaming folder. If there’s an SQL Developer folder there, rename it (temporarily – maybe “SQL Developer_new”). Copy the one (whole folder) from the old roaming folder to the new roaming folder. Start up the *old* copy of SQL Developer (also on your old drive somewhere – look for sqldeveloper.exe on the old drive). It will look in your current roaming folder, and wala! You’re up on the *old* version of SQL Developer, with all of your connections.

    Now you can follow the otherwise excellent description above. When you’ve exported your old connections, remember to go back to your new computer’s roaming folder for you, and rename the current SQL Developer folder (like “SQL Developer_old”), then rename your new SQL Developer back to the active folder (so, “SQL Developer_new” to just “SQL Developer”), start up SQL Developer on your new machine, and import those connections per the instructions. When things are good again, get rid of the saved old folder in your roaming folder, and you’re done.

    • hi, Could let know how do i import Sql developer connection xml encrypted file into Toad for Oracle.

    • No… those are different programs from different companies, I doubt it’s even possible.

      What do you need Toad for?

  9. got problem any idea? Reply

    oracle.jdeveloper.db.ConnectionException: Could not retrieve connection details for database EVEDB034. The error encountered was:

    Missing class: oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212

    Dependent class: oracle.adf.share.common.ClassUtils
    Loader: ide-global:11.1.1.0.0
    Code-Source: /D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/modules/oracle.adf.share.ca_11.1.1/adf-share-base.jar
    Configuration: in /file:/D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/jdev/extensions/oracle.jdeveloper.db.connection.jar!/META-INF/extension.xml

    This load was initiated at ide-global:11.1.1.0.0 using the Class.forName() method.

    The missing class is not available from any code-source or loader in the system.
    at oracle.jdeveloper.db.DatabaseConnections.getReferenceable(DatabaseConnections.java:661)
    at oracle.jdeveloper.db.DatabaseConnections.getProperties(DatabaseConnections.java:681)
    at oracle.dbtools.raptor.connections.ConnectionGrinder.doImportExport(ConnectionGrinder.java:240)
    at oracle.dbtools.raptor.connections.ConnectionGrinder.invoke(ConnectionGrinder.java:140)
    at oracle.dbtools.raptor.navigator.DatabaseNavigatorController.handleEvent(DatabaseNavigatorController.java:234)
    at oracle.ide.controller.IdeAction.performAction(IdeAction.java:529)
    at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:884)
    at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:501)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
    at java.awt.Component.processMouseEvent(Component.java:6297)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
    at java.awt.Component.processEvent(Component.java:6062)
    at java.awt.Container.processEvent(Container.java:2039)
    at java.awt.Component.dispatchEventImpl(Component.java:4660)
    at java.awt.Container.dispatchEventImpl(Container.java:2097)
    at java.awt.Component.dispatchEvent(Component.java:4488)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
    at java.awt.Container.dispatchEventImpl(Container.java:2083)
    at java.awt.Window.dispatchEventImpl(Window.java:2489)
    at java.awt.Component.dispatchEvent(Component.java:4488)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
    at java.awt.EventQueue.access$400(EventQueue.java:81)
    at java.awt.EventQueue$2.run(EventQueue.java:627)
    at java.awt.EventQueue$2.run(EventQueue.java:625)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:641)
    at java.awt.EventQueue$3.run(EventQueue.java:639)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: javax.naming.NamingException [Root exception is oracle.classloader.util.AnnotatedClassNotFoundException:

    Missing class: oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212

    Dependent class: oracle.adf.share.common.ClassUtils
    Loader: ide-global:11.1.1.0.0
    Code-Source: /D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/modules/oracle.adf.share.ca_11.1.1/adf-share-base.jar
    Configuration: in /file:/D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/jdev/extensions/oracle.jdeveloper.db.connection.jar!/META-INF/extension.xml

    This load was initiated at ide-global:11.1.1.0.0 using the Class.forName() method.

    The missing class is not available from any code-source or loader in the system.]
    at oracle.adf.share.jndi.ContextImpl.throwNamingException(ContextImpl.java:573)
    at oracle.adf.share.jndi.ContextImpl.findObject(ContextImpl.java:657)
    at oracle.adf.share.jndi.ContextImpl.lookup(ContextImpl.java:152)
    at oracle.adf.share.jndi.ContextImpl.lookup(ContextImpl.java:157)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at oracle.jdeveloper.db.DatabaseConnections.getReferenceable(DatabaseConnections.java:648)
    … 45 more
    Caused by: oracle.classloader.util.AnnotatedClassNotFoundException:

    Missing class: oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212

    Dependent class: oracle.adf.share.common.ClassUtils
    Loader: ide-global:11.1.1.0.0
    Code-Source: /D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/modules/oracle.adf.share.ca_11.1.1/adf-share-base.jar
    Configuration: in /file:/D:/app/client/wmalachowski/product/12.1.0/client_1/sqldeveloper/jdev/extensions/oracle.jdeveloper.db.connection.jar!/META-INF/extension.xml

    This load was initiated at ide-global:11.1.1.0.0 using the Class.forName() method.

    The missing class is not available from any code-source or loader in the system.
    at oracle.classloader.PolicyClassLoader.handleClassNotFound(PolicyClassLoader.java:2190)
    at oracle.classloader.PolicyClassLoader.internalLoadClass(PolicyClassLoader.java:1733)
    at oracle.classloader.PolicyClassLoader.access$000(PolicyClassLoader.java:143)
    at oracle.classloader.PolicyClassLoader$LoadClassAction.run(PolicyClassLoader.java:331)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.classloader.PolicyClassLoader.loadClass(PolicyClassLoader.java:1692)
    at oracle.classloader.PolicyClassLoader.loadClass(PolicyClassLoader.java:1674)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at oracle.adf.share.common.ClassUtils.forName(ClassUtils.java:34)
    at oracle.adf.share.jndi.ReferenceStoreHelper.getJndiObjectFactory(ReferenceStoreHelper.java:841)
    at oracle.adf.share.jndi.ReferenceStoreHelper.getObjectForReference(ReferenceStoreHelper.java:283)
    at oracle.adf.share.jndi.ContextImpl.findObject(ContextImpl.java:653)
    … 49 more

    • What versions are you trying to import FROM and TO?

      If that’s the message you get trying to import your connections, try NUKING the install directory for sql developer and download/extract again – it looks like a file is missing or corrupted.

    • Modify your exported connections xml file and do a find/replace

      FIND: oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212

      REPLACE: oracle.jdeveloper.db.adapter.DatabaseProvider

      Then import your modified file.

Write A Comment