So go download it.

I’m at the beach this week, not working. Mostly.

I’ll be talking about our newest addition to the family, pretty much non-stop, starting next week and stopping when version.NEXT is released. You have plenty to look forward to πŸ™‚

SQL Developer version 4.0 - lots of yummy goodness inside :)
SQL Developer version 4.0 – lots of yummy goodness inside πŸ™‚

For now, just a few points:

  1. We’re not distributing the JDK on Windows 32 bit distributions anymore
  2. We now require Java 1.7 JDK by default
  3. Windows installs will attempt to auto-find the JDK for you on the first run – if you’re in 64-bit mode, run the 64.exe in the bin directory and we’ll look for the 64bit JDK – once it’d defined, you can run the main dir exe again
  4. We’re shipping an JDBC driver now, so you’ll need an client to use OCI/thick connections – this will SOON change to 12cR1 driver/client requirement
  5. All 3rd party extensions are currently disabled – our framework has changed such that they will need to be updated to be compatible with the new version – more to follow early next week
  6. This is the first EA release for 4.0 – there will be more as you help us fine tune and tweak the new features and identify bugs
  7. Don’t be shy with your feedback, you won’t hurt our feelings

Now, back to the beach πŸ™‚


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


  1. I love this tool but I keep getting low memory error when trying to sync my physical with the relational model.

    I tried changing the setting in the ide.conf as instructed but it looks like the memory is limited to about 948mb while my laptop has 8gb of memory available.

    The ide.conf is also not very readable. I’m not sure if the memory setting is really being set or changed.

  2. Olav Jordens Reply

    Hi Jeff,
    I just installed sql developer 4 and found a difference in the display of XML output in the Query Results tab. When I ran a query in sql developer 3 producing xml output, the result is available as text that can be copied and pasted into an editor. In sql developer 4 the same query produces “(XMLType)” which is not helpful for viewing the xml. Is there a setting I need to adjust? Thanks, Olav

    • Can you give me an example? Querying a table with column of type SYS.XMLTYPE in version 4 (JDBC connection) to Oracle DB works as it did in version 3.2 – I see the first bit of the XML string in the grid cell.

  3. Hi, I recently tried the database diff tool from SQL Developer and found it really useful.
    However i did think of some changes that might make it even better.
    For example replacing the shuttle control from step 3 of the wizard with a simple text box into which the user could paste for example a prepared list of objects that interest him, or even better give him the option to save such a list or import it from a text file would really be quite useful when dealing with large number of objects.
    Another improvement could be made by providing the option to export all of the scripts
    from the diff report into one file. (If there is one sorry for being to blind to find it :D)
    Sorry for the long post. Thanks and good health.

    • For the diff script, if you hit the first button in the toolbar of the Dif report, it will give you a file with ALL of the object script output.

    • Super thanks, feeling a bit noob for missing it. πŸ˜€
      Do you think the replacement for the shuttle control makes any sense?

    • I have a few things I’d like to do around improving the DIFF feature. I’ll add this suggestion to our list of what’s under consideration.

  4. Hi,

    I noticed 2 problems with

    – Sqldevelopper windows becomes frequently topmost window and alt-tab can’t select another window
    – Deleted packages still appear in connection properties/packages. When I look at the same database with v3, they do not appear.

    By the way, do you know when a new release will be available ?



    • 1 – Can you provide an example, I’ve not seen this behavior yet.
      2 – Are you deleting the package by using the tree, right-click, Drop Package… or are you doing it via the worksheet?

      I do not know. We’ll let v4 percolate awhile and issue a patch to address the critical bugs that have been identified.

    • Not possible to give an example, the behaviour is the sql developer windows staying suddenly topmost, alt-tab not working because sql dev goes back to the top after trying to use the shortcut to go to another windows. Mouse works if I click into another window, this one goes to the top.

      Yes, right click, drop package. The package still appears in the tree but I get the message ORA-04043 non existing object. And it doesn’t appear in SQL3. Looks like the package property branch is stored locally in the treeview ?


    • When I drop a package, I get a confirmation dialog saying the package has been dropped, then the tree refreshes and the package is no longer in the tree.

      Do you have a report running with auto-refresh, or maybe a document ‘floated’ off the main SQLDev window? Doing anything funky in Windows? Cause I’m not able to observe or reproduce this problem either. Maybe a screenshot or quick video of what you’re seeing would help diagnose what’s going on.

    • I can reproduce the problem any time, after closing, reboot of windows. How can I send you a screenshot ? You can email me with the adress I let on this site.

  5. Hi,
    I have problem while upgrading SQL developer to on my windows 64 bit machine. version is working good, where as is showing below error while starting it. I did try adding AddJavaLibFile & SetMainClass to sqldevloper.conf but no luck. Could you please help in this regard.
    Error Message

    C:\Dev Software\sqldeveloper-2\sqldeveloper\bin>java -Xmx640M -Xms128M -Xverify:none -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Dsun.java2d.ddoffscreen=false -Dwindows.
    shell.font.languages= -XX:MaxPermSize=128M -Dide.AssertTracingDisabled=true -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Djava.util.logging.config.file=logging.conf -Dsql
    dev.debug=false -Dide.conf=”./sqldeveloper.conf” -Dide.startingcwd=”.” -classpath ../../ide/lib/ide-boot.jar oracle.ide.boot.Launcher
    ERROR: You’re trying to run the product with the legacy launcher oracle.ide.boot.Launcher . Check your .conf file and be sure to include:
    AddJavaLibFile ../../ide/lib/fcpboot.jar
    SetMainClass oracle.ide.osgi.boot.OracleIdeLauncher

    • Well that is an absolutely stupid response. Any idiot would know that oracle calls the sqldeveloper.bat file and they are the ones that call everything else. The problem is not why we are doing anything….it is the problem that it causes an error and we want to know how to fix it…if your blog can’t help then it is just wasting space and should be deleted!!!!

    • I’m not just any idiot, I’m THE idiot.

      If you want to set jvm properties, you do that in the product.conf file.

      That previous question/answer is like a year old. If you want to come in now and start a ruckus, that’s cool.

      “Check your .conf file and be sure to include:
      AddJavaLibFile ../../ide/lib/fcpboot.jar
      SetMainClass oracle.ide.osgi.boot.OracleIdeLauncher”

      Try doing that in the product.conf or the ide.conf file.

      Can you help me find a blog post on how to delete my blog in the meantime?

  6. How can i disable the “Check for Updates” entry, or even better, hide the UI under the Help Menu?

    Add “AddVMOption -Dide.noextensions=oracle.ide.webupdate” in the sqldeveloper.conf File doesn’t work for me.

    • Because we want to control updates itself in the company, not over the built-in function. As with any software…

    • The check for updates won’t actually update SQL Developer itself – just the extensions. Wanted to make sure you’re aware of that.

      Might be a more complete solution to blacklist the OTN download servers if you want to lock desktops down.

    • Aah, I didn’t know that it was only for the extensions.

      Many Thanks for the quick answers! πŸ™‚

  7. Hi,
    I have a problem with code completion in both SQL Developer 3 and SQL Developer 4.
    For example I type schema_name.package_name. (ctrl+space) and nothing happens if i trying to reference to package in another scheme.
    If I type schema_name. (ctrl_space) it work well for package name, but package members not showing.

    Such references in the same schema works well, but I need to code completion with object in another schema.
    How I can set this?

    • There have been some bugs around code insight, but in the 4 build I have, which is later than EA3, if I type:


      And hit ctrl+spacebar – I get back a list of the DBMS_OUTPUT items.

  8. Chris Whelan Reply

    Never mind…I found the answer in another one of your helpful posts. Thank you for that. I have to say that it is not intuitive at all where to look for the setting and I would suggest that there be a way to change it through the sqldeveloper ui or something akin to that.

    For anyone else who encounters this, the SetJavaHome directive setting is now kept under in a sqldeveloper folder the windows roaming profile folder (%APPDATA%), for me it was: C:\Users\cwhelan\AppData\Roaming\sqldeveloper\ in the product.conf file.

  9. Chris Whelan Reply

    Hi again. One more environmental thing I forgot to mention. I also have a 3.x version of sqldeveloper “installed”.


    Chris Whelan

  10. Chris Whelan Reply

    Hi Jeff,
    I am trying to run EA3 32Bit on Windows 7 against JDK 1.7 with no success. I have both 1.6 and 1.7 JDKs and I still require 1.6 for other development. When I start sqldeveloper.exe from windows explorer (both as admin and as my own user), it never prompts me to point to a JDK, but always insists on loading using the 1.6 version. I have set JAVA_HOME windows system environment variable, I used SetJavaHome in both the jdk.conf and sqldeveloper.conf files to no avail. I have set JDK 1.7 bin folder to be first in my PATH system environment variable. The result is always the same, the warning that 1.6 is not supported and needs to be upgraded. I have uninstalled and reinstalled 1.7. I looked at the registry settings. Nothing I have done will convince sqldeveloper that I have 1.7 installed. I know that my PATH is correct because eclipse loads fine and the help->about->config properties shows 1.7 was used. Do you have any suggestions as to what else I can do to resolve this issue?


    Chris Whelan

  11. Hi,

    You said: “Exactly what version are you running – we’ve had 3 Early Adopter updates so far?”
    I have a question!!
    I use SQL Developer but I don’t know which EA??
    How can I find EA version?

  12. SQL developper 4 is so slow it can’t even register keypresses in realtime when you type a query. Just like the 3.x series, it’s the only thing that can slow down my powerful computer. Just scrap it and rewrite it in a real programming language.
    I love Oracle Database, but cannot understand why they insist on providing subpar tools.

    • That’s obviously not the desired behavior, can you help me out a bit with some more information?

      Exactly what version are you running – we’ve had 3 Early Adopter updates so far?
      What OS are you on?
      What version of Java are you running?

      We’ve had a few issues with parser bugs that have been addressed, so you could be suffering from those, but that’s just a guess at this point.

      Java is a real programming language, but that doesn’t really matter. Getting it working for you is what matters.

  13. Just downloaded 4 ea 3 on Mac OS X (I like living on the edge…).
    When I try to expand “packages” I get nothing (there are 6 or so in user_objects). Other items (tables, indexes) expand fine. I do not see a filter set, although this would be strange on a just installed program. Anyone else run into this before I attempt a reinstall?

    Mac OS X 10.9
    SQL developer 4..
    JDK 1.7.0_45
    Attempted Connecting to Oracle and

    • So first question: are you already running SQL Developer, say a production version like v3.2, and are able to see the packages no problem?

      Here’s what we’re running to produce the package node list for a user…sorry for the poor formatting, that’s how it’s stored in v$sql…

      — Was (with scalar subquery in the select clause) : — –select * from ( — SELECT OBJECT_NAME, OBJECT_ID, — cast(last_ddl_time as timestamp) LAST_MODIFIED, — DECODE(STATUS, ‘INVALID’, ‘TRUE’, ‘FALSE’) INVALID, — ‘TRUE’ runnable, — ‘TRUE’ BODY_ALLOWED, — PLSQL_DEBUG, — (select count(1) from all_objects o2 — where o2.object_name = o1.object_name — and o2.owner = o1.owner — and o2.object_type = ‘PACKAGE BODY’ ) has_body — ‘PACKAGE BODY’ BODY_TYPE, o.created — FROM SYS.ALL_OBJECTS o, all_plsql_object_settings s — WHERE o.OWNER = :SCHEMA — AND s.OWNER(+) = :SCHEMA — AND = o.OBJECT_NAME — AND s.type(+) = ‘PACKAGE’

    • Yes, I was running 3.2 on this test mac. Unfortunately the .app was overwritten by the new install, but it would be a simple restore to recover it.
      I am attempting to run the sql used for the package node in the 4 EA3 version, but give me a minute, the formatting is messy…

    • I manage to get the SQL to run after fixing the formatting, changing an alias, adding a comma in the section “has_body — ‘PACKAGE BODY’ BODY_TYPE” and adding a paren close at the end. Don’t know if that is the way it is in the code too. This was the resulting SQL:
      select * from
      ( SELECT
      , (select count(1) from all_objects o2 where o2.object_name = o1.object_name and o2.owner = o1.owner and o2.object_type = ‘PACKAGE BODY’ ) has_body
      , o1.created
      FROM SYS.ALL_OBJECTS o1, all_plsql_object_settings s
      AND = o1.OBJECT_NAME
      AND s.type(+) = ‘PACKAGE’)

      I did not see any packages in the results. Going through that now to figure out why.

    • I guess I owe an answer even if it was the result of poor eyesight. There were really no packages there. The user I chose was one character off from the one I thought I chose. You may remove my thread and yell at me; I deserve it

    • Louis,

      Absolutely no problem! With 4.0 having SO many changes, I’m paranoid about lots of things breaking πŸ™‚ So your feedback is always welcome, even if it turns out not to be a problem.


  14. Hi,

    Looking at a mysql database, selecting a table in the connections properties pane, I can’t find anymore the above tab listing data/structure/index/constraints ?


  15. Hi Jeff,
    I’m trying to run 4.0 EA2 and it crashes immediately on opening. I have it “installed” as sqldeveloper4 next to my sqldeveloper (3.2) instance. It gets to about 10% on the progress bar and then quits, leaving no error message. Same thing when running from /bin and doing a control break. It dumps errors, but then closes the cmd window and itself. If I do a Run as administrator it loads correctly, leading me to believe 4 is needing some C:\ permission that 3.2 does not require, as 3.2 has no problems. Any ideas? Thanks.

    • Have you tried EA3 yet? And where do you have it ‘installed’ to, directory-wise? Using Java 7? What does the cmd window show right before it closes? We’ll write to the roaming user’s application settings directory, including things like the location of the JDK and setup other preferences, history files, etc.

    • I hadn’t noticed EA3 was out, I’ll go try it right away. As for the issue, I deleted the system4. folder from the User/AppData/Roaming/SQL Developer folder, and it worked. I guess the settings were messsed up somehow. Thanks much.

  16. Hi,
    the debugger does not remember changed debug-scripts anymore. It always shows the default script when opening the dialog to debug a package-method. You now have to always save your script and manually reload it again on every debug-run. Quite annoying when you once forget to save:-)



    • It seems to be working for me.

      I added a rollback to the script, ran it. Then opened the debug dialog again and it was still there.

  17. How can i get multiple instances to run? i use two or three separate sql developers when i work. i need to be able to run a long script on one whilst monitoring various objects on another. multiple tabs just doesn’t cut it since i need to see the output from both jobs at the same time. hope this hasn’t been removed, it will kill the product for me.

    • ad,

      Nothing has changed, but I want YOU to change πŸ™‚

      Instead of wasting a few hundred MB of memory to run a second instance of #SQLDev, try creating a new document tab group – this allows you to see your worksheet and your monitor/report AT THE SAME TIME. I do this all the time, and it works great.

      You could also FLOAT one of your documents off the main application and onto a 2nd monitor if you have one for an even nicer effect.

      But if you still want to run 2 copies of SQLDev, go for it.

    • With all due respect I don’t need you to try and change me, in fact assuming you know better what I need is patronising and downright rude!

      I solved the problem with the help of my dba. Floating was ok but wouldn’t let me run two scripts on the same connection at the same time which is what I needed.
      Making an exactly identical connection with a different name is excessive admin for a simple task, but suffices as a work around.

      “But if you still want to run 2 copies of SQLDev, go for it”
      yes please, tell me how to do it since it no longer allows me to.
      this is in fact the original question….

    • If you want to run 2 queries concurrently on the same connection – not what you asked for originally from what I can tell – open an unshared worksheet. That gives you a dedicated connection.

      To run 2 copies of SQL Developer, double-click on the icon twice.

      I don’t want to change you, I want to help you. You’ll be happier if you learn how to use document tab groups. You can see your work in multiple windows simultaneously w/o the need to open multiple instances of SQL Developer. SQL Developer isn’t designed to run that way, but will if you want it to.

      If it’s not working for you, you need to tell me more information, like, what happens when you try.

      It wasn’t my intent to be rude. It’s the Internet though, sometimes intent doesn’t carry through very well.

    • double clicking the icon twice just moves focus to the currently open one.

      don’t bother anymore, i’ve found a suitable work around. i just wanted a simple answer to a question. not an analysis of how i go about my work.
      I do db programming because it pays the bills. i write ccd physics engines for fun and would rather put my learning new thing effort into that.

      Thanks for the help.

    • Go into the ‘install’ directory, and navigate to your sql developer/bin subdirectory. Run the exe from there. You should get a cmd window and any error messages.

      Are you running EA1 or 2? EA1 had a bug where there was a hard coded limit of 3 instances of the application, but you said you can’t run two.

      Either way, I hope your physics hobby pans out. Do work that makes you happy.

    • i couldn’t disagree more.
      in my 20’s i did what i loved as a job, and promptly killed my love for it. professional just meant, having to do it even when you didn’t want to, because you were being paid to do it.
      don’t look for your life’s fulfilment in your job, most of the time you don’t have enough control over that.
      i know people who woudn’t know what to do with themselves if they didn’t have to work. i will never be like that. i work because i have to. i do fluffy IT rubbish coz it’s easy for me and it pays the bills.

      btw neither of the solutions you proposed seemed to work for me. i’ll stick with two differently named connections which is a kludge but works.

      thanks for your time.

    • So you tried running from the bin directory…and?

      I’ll only disagree on the ‘kludge’ bit. A busy connection requires a new one to do additional work.

    • mate i lost interest ages ago. found a work around that enabled me to do my job and that is all i was after. don’t have a deep seated need to investigate this, gave up on that 20 years ago when i ceased to be a ‘wunderkinder’. now i just learn what i need to get done what i must.

      “A busy connection requires a new one to do additional work”
      i had expected it to quietly create one as necessary if i was prevented from running multiple instances or simultaneous queries. but really i don’t care anymore. got what i needed.

  18. How about a drop down similar to the one in Toad that lets one set current schema? Is one still supposed to issue ‘alter session set current_schema=’?

    • One should use the ALTER SESSION. If you’re doing it by default, then I would ask your DBA to write a LOGON TRIGGER for you. Or if it’s just ad hoc, write a snippet you can use on demand. Or you can use the 3rd party extension I mentioned in your other comment.

    • I too have installed Version on a new laptop (win7). There are some great enhancements like exporting large tables directly into excel and some other little features (but haven’t tried out everything yet, I was on previously).

      Even though I can find the last 5 open files in my menu and even more by using and combined, I cannot increase the number of recent files and all the tabs close after closing sqldeveloper 4. In my previous version after re-opening sqldeveloper the tabs would reopen as well. Like someone said just like in Notepad++.
      I hope that can be restored. Now I have to reopen all the tabs upon opening sqldeveloper.

  19. Jeff,

    I’ve installed Version on a new laptop (win7). When I start up SQL Developer it does not reopen the files that I had open from my previous time I had used the tool. Thoughts?


    • Jeff,
      Thanks for your reply. I did see the File > Reopen and also Navigate > Go to Recent Files. I’m looking for something more automatic though. In the last version I was on ~3.5ish if I closed the tool with 5 files open for edit the next time I started up the tool it would reopen the same 5 files again automatically. I liked that functionality as I’m coding on projects for multiple days…

    • Apparently an intentional change as we had a bug come up around this, but the way I see it, it merits another college-try to maintain the previous behavior/feature. I personally like this behavior in Notepad++ and can see why you’d like it here too.

    • Another vote for restoring this behavior. If you want to go a step further and really take inspiration from Notepad++ add the functionality to save sessions so depending on what i am working on i can open a set of files that i defined and saved as a session. See File->Load Session in Notepad++

    • Hi Jeff, where is the toggle for the auto-reopen feature? I can’t seem to find anything in Preferences. It works for me, but not for a co-worker (both running the latest).

    • It’s not a toggle or preference, the developer fixed this for the GA official release.

      I don’t think there’s a preference for that – but the developer is on vacation this week, so I’ll ask for sure when he gets back.

      You could run with the command console log running and/or in debug mode to see if there are any exceptions or errors generated on startup to see if something funny is going on with your install.

  20. Hey Jeff,

    Been using SQL Developer 4 on Ubuntu 12.04 for a couple of months now and all is good. Today however I needed to connect to a SQL Server and couldnt do so.

    I downloaded the latest jtds drivers from MS for JDK7 into my .sqldeveloper/tmp/update folder and then added them to the Tools->Prefs->DB->JDBC Third Party Drivers.

    Restarted SQL Developer and no joy. I only see the Oracle Tab.

    I repeated the process for MySQL and same results.

    Please let me know if this is a bug or am i doing something wrong.


  21. Jeff,

    I maintain/develop GeoRaptor for SQL Developer. It has been an extension of SQL Developer since the original SQL Developer 1.0 beta. We currently have a version in production for 3.2.

    I have some updates I am wanting to release which I will do for 3.2 but I am also starting to get questions about 4.0.

    I note that you said on July 11th:

    “All 3rd party extensions are currently disabled – our framework has changed such that they will need to be updated to be compatible with the new version – more to follow early next week”

    I have done some Googling and had a look at OTN but I can’t find any references to any publication of the new integration framework for 3rd party extension developers.

    Has something been published that I have missed? If so, can you give me an URL to that information. Or if it has not been published, when do you expect something to be published?


    • Jeff, I just upgraded my SQLDeveloper to 4.0. Could you provide me the instructions for adding 3rd party extensions?

      Much appreciated.

    • The instructions pretty much remain unchanged – the problem is that version 4 requires all of the 3rd party extensions to be updated. Until they are, they won’t be compatible.

    • I cannot make the georaptor work on version
      I installed the files as specified in the instructions of georaptor. What else needs to be done?

    • Someone needs to update it for compatibility with JDeveloper 12’s new OSGi framework. Until that happens, it won’t run on v4 or higher versions.

      Have you investigated our native Spatial & Graph support?

    • I have to admin that I did not. I just saw that in my GEO column I get the MDSYS.SDO_GEOMETRY value instead of detailed info like SRID, bounds, and so on. I thought that GeoRaptor will fix this and then I noticed that it does not work.
      Is there a way to make it display more info with the native support?

  22. on v1.5.5
    is as fast as SQLPLUS session response time.

    • Yeah, so 30 second response time isn’t good. What version of JDK are you using and are you using THICK/OCI driver? If so, what version Oracle client are you using?

      Do you see any waits on your SQL Developer session to explain where the time is being spent?

      Are any of your colleagues experiencing this, or is it just you? Or if you were to try this on another computer/machine, do you experience the same delayed response time?

    • i am using JDK jdk1.7.0_40
      I am not using THICK/OCI driver..

      One more observation is
      SELECT * FROM DUAL ; on V4.0 first time its taking 48 seconds.
      Then subsequent execution on same SQL is normal.

      Again I execute a new SQL …same delayed response time…2nd time real fast…
      Not sure is there any settings I have to do ?

    • yes my colleges also facing the same issue with v4.0

    • Status progression in v4.0 shows following event “waiting for statement runner task to finish” for longer time.

    • I need to punt this to a developer – I’ve asked for backup and will let you know when I have more info or advice for you Thiru.

  23. Hi Jeff ,

    I have downloaded Oracle SQL Developer version 4.0
    When I execute the SQL statements it runs for very long …even the SQLs with WHERE clause condition on primary key.
    Another observation is when SQL developer 4.0 loaded …it consumes lot of DRAM memory and CPU resources.

    Whereas SQL developer version 1.5.5 with the same above SQL statements runs very fast and brings up the data very fast.

    So in version 4.0 do I need to make any settings ?
    Your hrlp is greatly appreciated.

    • I’m confused, you’re comparing SQL Dev 4 to SQL Dev 1.5, which is almost 8 years old? Do you have v3.2 you can use for comparisons? Or can you compare SQL execution times with the same query via SQL*Plus?

    • Jeff ,

      I had a similar experience with V3.2 as well…so i though V4.0 will be faster.

      When I execute the same SET of SQLs from putty SQLPLUS session real fast..
      When I run SQLs on v4.0,v3.2 …SQLs runs for longer time
      even ..simple SQL
      SELECT * FROM dual ; runs for more than 30 seconds.

Write A Comment