So two areas of major performance improvements in Oracle SQL Developer version 18.2:

  1. Importing from Excel
  2. Using the Query Builder

Importing from CSV was generally always pretty fast. Working with Excel consumes a lot of memory, and it took a lot of time to load an Excel file to be imported.

Well, it still uses a lot of memory – an Excel file is basically a zipped set of XML files, and this will always be…fun – but it’s a lot faster now to load up a good amount of data.

Get that data, where it’s safe, quick!

And then for the Query Builder, something that used to take 20 seconds or more, is basically immediate now.

Faster Query Builder

Your Desktop Looks…Funny?

If you noticed in the screenshots, my SQLDev looks a bit…off. That’s an unsupported Look and Feel (LAF) called ‘Nimbus.’

If you want to have a go at it, add this line to your product.conf file.


You’ll find that file in your Windows, AppData, Roaming, ‘SQL Developer’, 18.2 folder. Or on Mac/NIX, in your $HOME/.sqldeveloper folder.

And then when you start it, it’ll kinda look like this.

Did I say this was unsupported?

I don’t actually recommend this – it will break things, most notably so far I’ve notice you won’t be able to edit your user defined reports as the modal dialog won’t open. But I enjoyed the visual ‘break’ for a few days.




  1. I upgraded to SQL Developer 18.2 recently and when I run the exe file, it opens SQL developer, loads the connections and welcome page and just vanishes. I downloaded Windows 64-bit with JDK 9 included. Any idea whats happening?

    • thatjeffsmith

      JavaFX might be crashing the jvm on Windows.

      Try grabbing the Windows w/o the JDK distribution and when it prompts for a java home, point it to an Oracle Java JDK 8 install.

  2. Hi Jeff,
    I am running Oracle SQL Developer version 18.2 on Win 10 Pro 64 bit. When i use the Drag and Drop feature the ‘Join’ radio button is greyed out. I know for a fact that the tables in question have an ER.


  3. I’m running Windows 7 64 bit version. I downloaded SQL Developer 18.2 Windows 64-bit with JDK 9 included. I’ve run the same query on 17.4 and 18.2. It’s a query that returns quite a lot of records when I force it to fetch all of them, about 1.3 million. On 17.4 when I do a control-end, although it takes awhile, it eventually returns all the records. Windows Resource monitor shows about 4GB of memory in use. When I run that same query on 18.2, it hangs up when the number of rows fetched is around 400k records and eventually I have to force close SQL Developer. In checking Windows Resource Monitor, the amount of memory used is about 1.2GB

    I know it’s not ideal to display that many rows, but 17.4 was able to display them. Is there some setting I need to change in 18.2 or something I’m missing?

    • To sum it up, just upgraded to 18.2 last Wednesday, had been using 17.4 previously. Someone else had given me a query to check that had been written a few years ago, as I’m familiar with the application side and the workflow behind it. I wanted to see the data it was pulling so I ran the query the first time for a month worth of data, but the first 200 rows didn’t give me enough info for what I needed. I did a control-end to pull in all the records and then walked away (probably not the best habit on my part). When I came back 40 minutes later, SQL developer had frozen. Everything was white and I could do nothing, the cursor was only an hourglass until I minimized the app, so I killed the process. The server had been having issues recently, so I thought that might be the cause. I then ran the query for a week’s worth of data and around 300k rows were returned pretty quickly after hitting control-end. Because of this I was curious as to whether the first crash was a fluke or not. So reran with a month and it froze again. I gave it quite a bit of time (probably over an hour) and I could do nothing, so eventually killed the process in task manager again. Then it was just a matter of paying more attention to when SQL developer froze, to figure out around how many records 18.2 had an issue with. Once I figured that out, I still had 17.4 on my computer and was curious if it would have issues, as I’d done similar things with 17.4 in the past and not had issues. So ran the same query for a months worth of data, and it did not crash, giving me the 1.2 million records that 18.2 was having issues with.

  4. Hi Jeff,

    i have this notification this morning by SYMANTEC ENDPOINT PROTECTION

    Scan type: Scheduled Scan

    Event: Security Risk Found!

    Security risk detected: Heur.AdvML.C

    File: >>sqldeveloper/ide/bin/launcher.dll

    Location: >>sqldeveloper/ide/bin/launcher.dll

    Computer: **********

    User: ********

    Action taken: Cleaned by Deletion

    Date found: jeudi 19 juillet 2018 12:02:03

    it’s normal ?

  5. Hooray for the query builder speed boost ! For years i had been sorry that such a useful feature was nearly unusable. Did someone finally care enough to complain through MOS ?

    The ability to convert between old-style vs ANSI joins is also a very nice touch (worthy of being demonstrated in your animated GIF, hint, hint)

    Any chance to have the nimbus L&F officially supported ? I remember trying it a couple years ago and noticing some glitches.

    • thatjeffsmith

      I don’t think there’s much chance for official support.

      The query builder code comes from a vendor. We had a bug logged on them…we got tired of waiting for a fix, so we fixed it ourselves. It should have happened sooner…blame me for that.

    • bdelmee

      I am grateful if this dormant feature has become usable. I can see a use case for reverse engineering an old, complicated query: drag and drop it to an empty worksheet, switch to graphical view, make sure “create oracle join” is unchecked, switch back to the worksheet and voilà, your query now uses ANSI syntax and is reformatted.

  6. Hi Jeff, Thank you for the new SQL Developer release.
    There’s one issue I, sort of, were hoping would be resolved but I stumbled upon it again.
    When saving a package from context menu “Save Package Spec and Body…” occasionally, not always, some packages are saved empty – zero length, while others at the same time are saved just normally. Repeating save action and changing location to other disks doesn’t help.

    • thatjeffsmith

      I don’t believe that’s a known bug. I’ll have to try and reproduce what you’re observing first, and then log a bug.

    • thatjeffsmith

      You can have a REST service return CSV.

      And we can POST CSV in body to do a data load to a table.

      What are you looking for?

Write A Comment