It’s been 177 days since our last release – version 19.4 at the end of December, 2019! Obviously, much has happened since then.

The astute amongst you would have noticed there WAS NOT a version 20.1 release. This was a conscious decision on our part to hit ‘pause’ vs bragging about 20.1 in the middle of a global pandemic.

However, there are bug fixes that we need to get into your hands, and our developers have never stopped working on new features, so we ARE releasing version 20.2, TODAY.

Download Links

What you’re getting, high level

SQL Developer

Probably the biggest thing coming down for version 20.2 is a more flexible PL/SQL Debugger.

DBMS_DEBUG vs JDWP

This just makes a secondary jdbc (or sqlnet) connection to the database to run the debug over, vs JSQP which has the Database itself reach out and open a connection to your client. So no firewall and ACL rules to define. You can imagine this would also be MUCH easier to navigate in a world where your database is running in the Cloud.

Another small, but useful feature – finding stuff in your plans.

Search. Yes, we should have added this years ago.

I don’t want to undersell the BORING stuff. There’s also about 100 bug fixes.

Data Modeler

I don’t have much to say here, although there are also a ton of bug fixes and feature tweaks. I’ll be talking about this more later this Summer.

SQLcl

LOADS of great stuff here. Keyword being ‘load.’

If you like the ‘load’ command, you’ll now have the ability to configure exactly HOW the data is being loaded via two new SET commands.

SET LOAD & SET LOADFORMAT

Image
So I can define how DATEs are to be defined or how large of batch size I’d like.

Even bigger, a brand new command!

OCI
So, so, so many fun demos to build with this!

Liquibase

Our automated change management feature has huge changes as well for version 20.2. You get support for generating HTML docs, doing DIFFs, and also seeing what SQL will run on a rollback via the rollbacksql command.

Here’s a DIFF

Image
How is SCHEMA A looking compared to SCHEMA B?

A note on SQLFORMAT…

ANSICONSOLE or ‘pretty printing’ of SQL Results is now the default.

We added a readme for SQLcl, and THIS is noted, in case you have production scripts relying on the old school formatting option.

If you don’t like this, or MUST HAVE SQL*Plus style reporting, then you’ll want to SET SQLFORMAT to null in your login.sql.

What about ORDS?

ORDS and SQL Developer Web version 20.2 will be available shortly. Just a few more tires to kick.

thatjeffsmith
Author

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

27 Comments

  1. Hi Jeff,

    with the most recent version of sqlcl (20.2.0.174.1557) I ran into the problem of not being able to launch it on Windows since the lookup for an JRE was changed:
    – In versions up to 19.4.x I was able to set the JRE via PATH and/or JAVA_HOME environment variable.
    – In 20.2.x it seems to prefer the Windows registry over those variables.

    My current workaround is putting a jdk\jre-folder besides my sqlcl-directory. (And since there are no symlinks under Windows, this results in yet another java-installation on my PC…)

    Are there any plans to change the JRE-lookup-logic in sqlcl so that it will be possible again to specify or override the JRE-path (e.g. via the environment variables mentioned above, a new environment variable, an argument for sql.exe or the like)?

  2. I used ORACLE data modeler for years and years, but this is the first time it keeps crushing. It is not able to save models. I tried to uninstall and delete all the app files. Nothing. Even tried to just get older version that worked for me for years and nothing. No matter what I do it keeps crushing. I even though my initial application model had issues so I have imported all the structure from db connection – Data dictionary into new model and still the same. As soon as I try to save the model, that’s it. I can not open it again. I tried so many different things , lost 3 days of work. Even to switch between laptop ( in the case it is related to system setting).
    These is one version of errors I get.
    SEVERE 281 52436 Error Opening Design! oracle.dbtools.crest.util.logging.Logger
    SEVERE 280 1 null at com.oracle.jdeveloper.nbwindowsystem.NbEditorContainer.getURL(NbEditorContainer.java:1019) oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1
    SEVERE 279 85058 null at com.oracle.jdeveloper.nbwindowsystem.NbEditorContainer.getURL(NbEditorContainer.java:1019) oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1
    SEVERE 166 0 Error Oen design! oracle.dbtools.crest.util.logging.Logger

    Any help would be appreciated. I was not bale to find any help online.

    • thatjeffsmith

      So sorry for your problems, Denisa. I will see if those errors provide any insight on our side and get back to you, ASAP.

  3. Hi Jeff,
    It was a long time ago… when the product was still called “Raptor”.
    I asked for an option to change the datagrid to “read only” – even (and especially) when I am logged in as owner (of the table).
    Not only did they not understand why this would make sense.
    No, in the answer I was also asked if I had mental problems and would not trust myself. (I can’t remember the name of the guy who answered me …)
    At that time I found this to be impertinent and insulting.
    As a result, for several years I did not see any sense in dealing with the tool.
    What can you learn from this: Everyone who writes to you (nice or not) wants to help you somehow, has an interest in the tool and would like to work with it.
    And therefore he/she wants it to be better (whatever you subjectively consider better).
    That should be the quintessence for you.
    Many worse than those who sometimes express themselves in an unobjective way are those who don’t give you any feedback at all and simply don’t use the tool – because they think (for whatever reason) that it is not usable.
    So: just swallow the less nice and use the constructive part (as small as it may be) to achieve what you and the users want together: An always better tool.

    Best Regards
    Andre

    • thatjeffsmith

      Thanks Andre. You’re not crazy by the way, at least, not from the limited information you’ve shared with me.

  4. I took the time, seriously reported bugs, requested desperately needed features – and Jeff Smith decided to neither publish my comment nor suggest edits to pass possible requirements.

    You’ve not only lost a customer here, you’ve lost a developer.

    • thatjeffsmith

      I spend time here trying to help people that want to be helped. I don’t need the abuse. I rarely delete comments. When I do, there’s a good reason.

      You’re right though, I should have given you a chance, or said what I found objectionable. So I’m going to republish a redacted version of your comment, and do my best to answer it honestly.

  5. Marcel van Lare Reply

    On this new version, when i doubleclick a materialized view (open) and look at the tab SQL i only see the grant part of the mview definition and not anymore the create materialized view statement. Worked in previous version right.
    When i do edit and go to tab DDL and then click create, i do see the create statement. For now this is my workaround (there are other workarounds also).

    • thatjeffsmith

      20.2, logged in as the owner of the MV, i’m able to get my MV DDL…

      create materialized view "EMPS_DEPTS" (
      "EMPLOYEE_ID",
      "FIRST_NAME",
      "LAST_NAME",
      "SALARY",
      "DEPARTMENT_NAME"
      ) default collation "USING_NLS_COMP"
      segment creation immediate organization heap
      pctfree 10 pctused 40 initrans 1 maxtrans 255 nocompress logging
      storage ( initial 65536 next 1048576 minextents 1 maxextents 2147483645 pctincrease 0 freelists 1 freelist groups 1 buffer_pool
      default flash_cache default cell_flash_cache default )
      tablespace "USERS" cache
      build immediate
      using index
      refresh
      force
      on demand
      using default local rollback segment
      using enforced constraints
      disable on query computation disable query rewrite as
      select EMPLOYEE_ID,
      FIRST_NAME,
      LAST_NAME,
      SALARY,
      DEPARTMENT_NAME
      from EMPLOYEES,
      DEPARTMENTS
      where EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;

      comment on materialized view "EMPS_DEPTS" is
      'snapshot table for snapshot HR.EMPS_DEPTS';

    • Marcel van Lare

      Hi Jeff,
      I checked on mview statements which where not generated in 20.2 in comparison with 19.4. They are mviews where 19.4 has a comment and 20.2 does not have that:
      — Unable to render MATERIALIZED VIEW DDL for object ….. with DBMS_METADATA attempting internal generator.

      Guess for some syntax in sql an internal generator is used: like mviews with a with as construction.
      Regards, Marcel

  6. Dear Jeff,

    For your information:
    I just encountered the following behavior with the new Data Modeller (20.2.0.167 on Windows 7), Version with JDK included.
    Under “Features” / Database I disabled
    NoSql 19.3.12 and
    Cloud Support
    (since I won’t use either)

    But after that datamodeller.exe failed to start, with the following error-message:
    Product extension oracle.datamodeler could not be loaded. The product cannot start.
    Disabled extensions:
    oracle.sqldeveloper.onsd: Disabled by user
    oracle.sqldeveloper.cloud: Disabled by user
    oracle.datamodeler: Missing dependencies: oracle.sqldeveloper.cloud, oracle.sqldeveloper.onsd

    Seems like ‘he’ knows I’ve disabled it, but he depends on these extensions anyway.

    As stated above, this is just for your information. I’ve removed the “system.settings” and leave these options enabled.

    best regards,
    Thomas

  7. I rarely have problems upgrading releases, but today I get this on my OS X Catalina 10.15.5 box: “SQLDeveloper 20.2.app” can’t be opened because Apple cannot check it for malicious software. This software needs to be updated. Contact the developer for more information.”

    I realize this isn’t necessarily your problem, so just FYI in case you get comments from others. I can wait until it will install for me.

  8. Timothy Gotham Reply

    I cannot get the DBA panel to display on Windows version 20.2. Menu, view, DBA does nothing. No issues with previous versions.

  9. John Peeken Reply

    Hi Jeff,
    Do you know what happened with the Snippets view and the Map view under the View menu in SQL Developer 20.2 ?
    Thanks,
    John Peeken

    • John Peeken

      Hi Jeff,
      Strike my last comment. After bouncing between 19.4 and 20.2 and shutting everything down and then starting up 20.2 now see the Snippets view and Map view.
      John Peeken

  10. What about _finally_ getting that messy code completion helper – which currently isn’t even near 1% of what IntelliSense is for Visual Studio – fixed? It’s neither correctly popping up, matching what I want to insert, etc.

    Besides, what about _finally_, actually moving into 2020 regarding Dark Mode? The current “theming” can be summarized as “look like crap, but allow for dark input area” – which is not only disgusting from an aesthetic/UI point of view, but also from an UX perspective.

    Being new to SQL Developer, I _still_ can’t believe users are still accepting such an awful UI in the year 2015, let alone the current year!

    Seriously, fix this ASAP, Oracle. We developers deserve this!

    • thatjeffsmith

      The completion support – what is missing? Can you share examples?

      You can have your true dark mode.. With a little work –

      See slide #17, I think

    • @tjatjeffsmith That’s simply not true – neither “true dark mode” nor “little work”:

      First of all, the _only_ thing one can “theme” – and it doesn’t even deserve that attribute, given needed work for such neglectable results, but I want you to comprehend how _awful_ SQL Developer is regarding post-2010’s _common_ UI aesthetics and not start a dumb rant here – is the input area.
      That’s neither “true dark mode” as that _requires_ _the_ _whole_ _UI_ _to_ _adopt_ _dark_ _colors_.

      Second, the amount of work is simply to much. Today’s theming goes like this:
      a) provide _several_ and _different_ themes out of the box
      or
      b) provide a “select, validate preview, confirm if pleasing, wait for app’s reload” mechanism, much like _any_ modern OS does since more than 10 years – and _yes_ *reload*, *not* restart!
      or at the _very_ least
      c) provide a “here’s a link to our wiki, where you find _direct_ downloads to themes, then click ‘Import’, confirm if pleasing, wait for app’s reload” way

      Third, reading the slide you’ve linked to (it’s actually #19 & #20, but nevermind), there’s _clearly_, in _big_ letters written:
      a) “Color-Themes Limited to Oracle (blue) / OS Native (Windows / Mac / Linux)”
      b) “Code Editor has more Options”, yet it also _clearly_ states “Only affects Editor-Pane”, “extended by editing XML-File” & _most importantly_ “Remainder of UI isunchanged”
      Now, where’s your “true dark mode”? I’d call you a liar right away, if only I didn’t promise to start a plain rant, but instead get you to comprehend how messed up this software is. Just to _finally_ get you & your developers to _actually_ build _something_ that doesn’t look like crap from the very first moment one does use your app.

      Fourth, while slide #20 describes an, again _way_ _to_ _cumbersome_ for *anyone* post-2010, way for using a different UI based on multiple (file) edits, it _clearly_ states at its bottom (below a rather cynic “Enjoy” heading): *absolutely no support from Oracle*
      So, I’d actually get a _real_ “true dark mode”, but it’s explicitly unsupported by the company whose product manager is the exact same person linking to that information in the first place? You’re kidding me, right? Because, if that’d be serious, you’re backlog of knowledge would increase so much that not even an Oracle database could handle the amount of text you’d need to read right away without stopping for _anything_ prior to finish your studies.

      Fifth, the completion support – and I’ll _stay_ fair, I promise – is about 1/3 of what’s expected from an IDE-like app nowadays.
      For example, the simple statement, “SELECT * FROM MyTable mt where mt.”, is already enough to show where SQL Developer fails:
      a) WHERE is not converted to uppercase upon hitting space although I configured uppercase keywords,
      b) after typing the dot, no completion list pops up, only when enforced via CTRL+space
      c) the information provided is way to few as there’s no icon indicating the primary/foreign key column(s), nor the type of each column, i. e. no “NUMBER(10, 2)”, nor indexed columns, existing triggers for (a) column(s), etc.
      And that’s without even mentioned non-existent popups for usage of custom functions where even more useful information regarding needed parameters, return value(s), etc. would be required to show up.

      Sixth, why’s there no textbox for filtering within the connection’s tab to the left of your app? Expanding a node, e. g. “Tables” and then typing “MyT” jumps to the right table, but it also immediately creates a new tab at the right which goes to the last selected content tab, e. g. “Data”, which causes _huge_ delays when dealing with big tables. What users want is a simple “get to table X, fast” and even this very small workflow is screwed up by SQL Developer which makes me almost cry as I’m a software engineer myself, but _still_ haven’t found a valid reason how _any_ software engineer could develop such a dreadful .

      Lastly, another awful realized feature: display whitespace within the input area of SQL Developer.
      To describe what’s needed, I simply refer to Notepad++ and it’s granular separated options for several types of whitespaces – just like Visual Studio (Code), Azure Data Studio, KDE’s Kate or even the “old” VIM console editor do!

      Now, if you’re serious about your statement at the right, that you want _me_ to be happy using your database tools, you’ve got about ~6 months of work & testing to do. So, don’t even take the time replying – just go ahead and start the release planning for each of the aforementioned, lacking or, even worse, awfully bugged, features in desperate need for fixes and/or implementation. And remember: the sooner the better!

    • thatjeffsmith

      Not true on the theme’s and input area. If you actually went and looked at what I sent you to, you can see the ENTIRE APPLICATION is themed. It is available via a GUI tweak, no, but it’s pretty simple text file edit.

      I’m sorry you find SQL Developer ‘awful.’ There are approximately 300 database clients out there that support Oracle Database. If you don’t like SQL Developer, you don’t have to use it. We have about 7,000,000 users, and we aim to make it as good as possible.

      The theming is what it is. We get it from JDeveloper. We focus on the core SQL, PL/SQL, and Database support. If you don’t like how it looks, then you can always use SQLcl or SQL Developer Web. We hope to eventually port SQL Developer Web to an electron app for your desktop machines, but we’re not there yet.

      Thanks for calling me a liar. If I said something less than accurate, I want to know about it, so I can fix that. Perhaps we actually just misunderstood one another.

      Just because we don’t officially support something doesn’t mean I can’t suggest users to go try it out. We’re a free product. I’m not asking you for extra money here. I’m doing my best, to again, help about 7,000,000 people, in my FREE time, doing this blog.

      Insight. If you want the WHERE to be UPPERCASE, you need to set your formatter options, then format the code. Insight is completely different feature than the formatter. I have a post on this, somewhere in here…

      I don’t have your MyTable to test, but this works for me. SELECT * FROM EMPLOYEES EMPS WHERE EMPS. – gives me the list of columns for EMPLOYEES. You haven’t told me which version of SQL Developer you’re using, but that would be good to know.

      If you need to know your data model, then open the table. Ctrl+Click on the table to open it. Then create a new desktop tab group, then you can see it side by side as you type your query. Or use Shift+F4 to get a popup describe to see the column definitions.

      There’s no text box to filter connections, because we’ve implemented this via connection folders. We just don’t have that feature. The product is going on 15+ years old, and it’s not there, and it seems to work ok. I can add it, but I’ll need more than one person asking for it to task a developer to build that. Try the folders first, the feature is already there at least.

      If you don’t want the objects to open as soon as you click on them, disable that in the preferences – open object on single click.

      You can insult me I suppose, but please don’t insult our developers. Not cool. This comment in particular is dreadful.

      This comes from JDeveloper. I’ll let them know we want them to make it work like Notepad++ and see how that goes.

      6 months to make you happy. I think if you took about 6hrs to read the docs and my blogs, watch videos, etc, you could get much closer to being happy.

      We’ve been making improvements to this product for the entire 15 years it’s been available. I stand behind it, 100%. I’ve got the next release already scheduled, and we have the same marching orders as always – kill as many bugs as possible. We release with one of the smallest open bug counts for all products at Oracle. Of course we miss a few, but then again, we’re humans. Dreadful humans I suppose, but we can put out releases as frequently as every 3 months to fix the worst bugs.

      I realize I may have already lost you as a customer. In either case, I apologize for your bad experience.

  11. Marcel van Lare Reply

    Always looking out for newer versions of sqldeveloper. Nice. Looking out for this:
    Would be nice if it would be possible to have more window instances of ords open.

Reply To Martin Cancel Reply