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
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.
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.
Happy Jeff! And happy DBAs that don’t have to reset my 300+ passwords.
A Few More Connection Things You Should Know
- Connections can be organized with folders
- Connections can be distinguished in the UI with a color scheme
- Connections are now listed in the ‘pickers’ by active connections first, then alpha sort
- You can connect to other kinds of databases – helpful for migrating them to Oracle!
78 Comments
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.
Awesome!
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!
Great!
Thank you Jeff, greatly appreciated!
This worked perfectly when going from SQLDeveloper 17.2.0.188 to 19.2.1.247
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.
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
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
It’s a bug, hopefully fixed for 19.1
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.
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.
Thank you Sir
You’re most welcome!
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?
Nice post. concise and useful
Excellent, thanks for the feedback, Joshua!
Merci beaucoup
de rien
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.