Version 18.1 of SQL Developer is now available.
Go download that here.
Most importantly, there are a TON of bug fixes in this release. Many of them reported on twitter, blog posts, and our forums. So thanks again for all that feedback.
Today I want to talk about the first thing you’ll see, our new ‘Welcome Page.’
It used to look like this –
Then it went to this –
Make it better AND more helpful
The #1 thing folks struggle with when starting with Oracle Database and SQL Developer – making a connection. We have docs, I’ve written blogs, we got videos, but what if we could make the tool a bit easier? So we did that.
We’ll –
- Show you the TNSNames file we find
- Or let you load your own TNS
- Show you databases you’ve connected to previously
- Help you GET a database
Looks a little bit like this.
We look for TNS files in the same place your other Oracle tools look. If we find one, we show you where we found it. And show you what’s in it. AND you can hover over an entry to see how that Alias or Entry is defined.
And if you CLICK on it, we’ll add that connection to your list, in a folder called, TNS.
But what if we CAN’T find your TNS? Or what if you have a one-off copy of a file you’d like to use to define a connection? No problem.
This will get loaded up in memory for defining connections – but WON’T become your new TNS file. For that to happen, you need to put it in the ight place(s).
Recent
Your last 5 or so connections will get tracked in the Recent panel. Clicking on these entries will OPEN those connections. I’ve found myself using this, a LOT.
But I Don’t Have a Database π
So get one. Here are a few to choose from.
Other Things
Yeah, we have lots of links. Places to follow us online for news and such.
We even have some pictures showing you what SQL Developer can actually do.
But.
No Like?
This is our first go at the connections bits. Let us know what you think, and we can tweak for v18.2 or 18.3 or … you could close the page and not use it again.
But try leaving it on for at least a few days, and see if you don’t like that ‘Recent’ feature.
Yes, this is a JavaFX powered screen. Yes, that DOES normally suck up some GPU power..but we found a way to avoid that, so you can have your good looks and performance too!
Oh and if you do leave it on, when there’s a new version available, the banner up top will let you know!
63 Comments
My Start Page is permanently showing “Waiting for Editor to initialize” …. endlessly, and it’s annoying. The “Loading Welcome page” process is for ever running – and I’d like to get rid of it.
Could you please help!
Thanks,
I’d rather find the reason why the page won’t load – that will help prevent others from running into the same problem.
And then, once it’s working, it will be easy for you to tell it to not open again.
Are you able to pull up the Instance Viewer from the DBA panel? It’s also a Java FX screen. If it’s working but not the Welcome Page or vice versa, we can rule in/out Java FX as the problem.
Also, what OS and version of Java are you running?
Hi Jeff,
I’m running a Window 7 Enterprise OS and Java Version 1.8.0_181.
I tried pulling the Instance Viewer from the DBA panel, but it’s giving the same error?
Regards
Steven
>>but itβs giving the same error?
You mean, you get the ‘loading’ message, and it never comes up?
Your Java – is that from the embedded home we ship with SQLDev, or is that one you installed?
Yes, the Instance Viewer is just showing “Waiting for Editor to initialize” – same as the Welcome page – and never comes up.
Sorry, the Java version in the Editor is: Java(TM) Platform 9.0.4
Should be the same as the shipped version.
(I also use ODI, and it’s version it is using ver 1.8.0_181)
Thanks,
OK, it’s do this. Close SQLDev.
GO into your AppUser folder for your OS user. In their, under Roaming Profiles is a sqldeveloper directory. And under that is a 18.whatever folder with a product.conf file. Edit that file, and point the java home to your 1.8u181 java home. Start SQLDev, let’s see if our magic spell has worked. And if it HAS – give it a day or 3 before you close that page – I think you might like the recent connections feature…
Thanks Jeff!
Took me while to figure out there are 2 directories, and the file is product.conf, but it’s working like a charm..:)
I’ll leave it running now, it’s not as annoying anymore …
Thanks!
Sorry for the PITA, and thanks for staying with me. And I updated my comment – sorry i put the wrong file name in there!
So for 18.3, we’ll distribute Java 8 vs 9 – too many hiccups around this and JavaFx – and we’re working on getting support for Java 11 going for a future release.
Jeff,
18.1 looks much improved and performs better than versions I’ve used in the past!
One question, if I open an unshared worksheet, is there a way to open a sql file from the filesystem into that sheet? I cannot seem to make that happen, even with drag and drop. It opens in a new worksheet, and is not an unshared workseet.
Thanks
Morgan
You would just need to
@file to execute it…but yeah, what you see is how it is today.
Right. I was looking to get it into the worksheet so as to then export the query results.
Thanks
Hey Jeff,
Looks like some of the options around Application Express have gone away? Been looking for them all day and just aren’t there.
Right click on APEX node -> should see at least “Import”, Right Click on application should show Import and Deploy. None of these show up.
I kept an older installation of SQL Developer (4.1.5) around … so I fired that up. Upon connecting to the same database, and same user, I see the APEX options just fine.
The docs (https://docs.oracle.com/database/sql-developer-18.1/RPTUG/RPTUG.pdf) say it should be where I’m looking.
Hi Jeff,
Our users are complaining about loosing connections to the database in just a few minutes and getting “Your database connection has been reset” in the latest versions of SQL Developer (including 18.1).
SQL Developer version 4.0.3 is OK and does not reset connection.
Is there any known issues with SQL Developer and enforced database encryption?
Our database server tnsnames.ora:
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,RC4_256,AES192,3DES168,AES128,RC4_128,3DES112)
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=SHA1
SQLNET.EXPIRE_TIME=1
—-
For example, if I establish connection to “user4707@qa11” and I execute a query “select count(*) from user_objects”, and then repeat the query again in a few minutes the connection is reset and see the following in the logging pane:
SEVERE 426 116 oracle.jdevimpl.db.adapter.ReferenceWorker$PBEWorker Password decryption failed for connection u_proxy[u_odbc]@dev11
This connection does not seem to be related to user4707@qa11.
Thanks,
Edward
No known issues.
There are probably some big differences between 4 and 18 – the JDBC driver and the Oracle Thick Client. Which thick clients are you using in your 4.0.3 and 18.1 installs?
Jeff,
In both cases 4.0.3 and 18.1 are using thin JDBC driver connection.
Database 11.2.0.4.171017 with enforced network encryption
Query: select count(*) from user_objects;
—
It probably has something to do with SQLNET.EXPIRE_TIME=1
Here are some cases I tested with 18.1:
1) connecting using thin JDBC driver as shared connection (default).
Trying the query after a few minutes:
No results shown
SQL Developer’s Logging Pannel:
SEVERE 737 1 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)
SEVERE 736 357730 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)
alert.log:
ORA-00600: internal error code, arguments: [16365], [0x7000102CC27FD18], [], [], [], [], [], [], [], [], [], []
…
found dead shared server ‘S008’, pid = (39, 1)
After another attempt to run the query “Reconnect” dialog appears.
2) connecting using thin JDBC driver as dedicated connection ( I added :DEDICATED to the service name to enforce it)
Trying the query after a few minutes:
No results shown
SQL Developer’s Logging Pannel:
SEVERE 864 199975 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)
alert.log:
No problems.
After another attempt to run the query “Reconnect” dialog appears.
3) connecting using 12.2.0.1 client and using OCI/thick driver as shared connection (default)
Trying the query after a few minutes:
Correct results shown.
4) connecting using thin JDBC driver to a different database that does not have defined SQLNET.EXPIRE_TIME, but has enforced network encryption.
Trying the query after a few minutes:
Correct results shown.
So it seems to be related to dead connection detection and thin driver that comes with SQL developer.
I also got additional info that SQL Developer 4.2 is affected. Someone referenced
https://community.oracle.com/message/14355285#14355285
Thank you,
Edward
jdbc thin doesn’t touch SQL*Net, thick DOES
again, sounds like a jdbc driver issue – please log a SR with MOS
BTW
alert.log:
ORA-00600: internal error code, arguments: [16365], [0x7000102CC27FD18], [], [], [], [], [], [], [], [], [], []
β¦
found dead shared server βS008β, pid = (39, 1)
Don’t pass go – contact Oracle Support.
We had the same issue while upgrading SQL-D from 4.x to 17.x. And the same issue while upgrading ODI.
See the Bug 27636730 (reported last year!). It only appeared when setting sqlnet.expire_time AND sqlnet.encryption_…=required
You can try disabling one of them. We can only reproduce it with 11.2.0.4. The problem didn’t appear with 12.2.
Again, the problem exists with ODI and SQL-D (but the SR for ODI got closed as duplicate of the SR for SQL-D) and it is known to Oracle since 2017.
Our dev’s 5 minute, quick reply…
The database is configured to kill idle sessions at some point between 10 and 15 minutes. The user is trying to use SQLNET.EXPIRE_TIME as a keep-alive, expecting that every ten minutes the connection gets pinged and that prevents the connection from idling. Thatβs not what SQLNET.EXPIRE_TIME is for. Itβs intended to allow detection and killing of dead connections so the server can correctly clean up the sessions. We canβt reproduce it because the 15 minute idle is not from the expire time, but from the idle_time being set on the profile used by the user.
I suspect in thick and old versions of thin, the ping from the server to the client was enough to keep the session active. It isnβt anymore (which is probably an intentional change in thin, since that parameter is about detecting dead connections, not keeping sessions alive).
Piy,
Thanks for the tip.
Jeff,
In our case application user does not have IDLE_TIME set at user profile.
Setting SQLNET.EXPIRE_TIME is required by compliance and it is not used as a keep-alive,
but rather to check if client is still alive.
The sqlnet.expire_time parameter is used to set a time interval, in minutes, to determine how often a probe should be sent verifying that client/server connections are active. This protects the system from connections left open due to an abnormal client termination.
It can also help cleaning sessions due to firewall timeout.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjdbc/JDBC-troubleshooting.html#GUID-5ADA932F-B2BF-4E34-8995-435FD2EF1F92
By the way,
If I setup SQL Developer with 12.2 instant client and OCI/Thick drivers, then SQL Developer drops connection.
If I setup SQL Developer with 12.2 client and OCI/Thick drivers, then SQL Developer keeps connection.
Thanks,
Edward
SEVERE 426 116 oracle.jdevimpl.db.adapter.ReferenceWorker$PBEWorker Password decryption failed for connection u_proxy[u_odbc]@dev11
Something is going wrong or related to the password not being saved as we’d expect.
Jeff,
Thank you for checking,
I removed this entry and re-entered it one more time. No SEVERE logs since then.
Regasrds,
Edward
Excellent!
In this version xmltype columns are not showing their value in the grid even though I’ve got Database -> Advanced -> Display Xml value in grid ticked. Also when I double click on an xml entry to view it the Edit Value box is empty.
Known bug, probably the ‘worst’ one we’ve uncovered for 18.1 at the moment. Best bet is to keep a copy of 17.4 handy if you’re going to be doing much with XML.
Hi Jeff,
What all database versions is it compatible with?
Anil
SQLDev 18.1 supports 11gR2, 12, and 18c
Hello Jeff!
I just downloaded SQL Developer 18.1.
Great work!
When i select a database connection on the new welcome page, a folder (named TNS) is created in the connection list.
I can move manual created connections into this folder and can move automatically created connections out of it, i even can rename that folder.
How do i create such a folder manualy?
I wished for this a long time, as i have some 200 connections that i would like to group in folders.
As a workarround i tried to rename the TNS-folder to some other name.
When using another connection from the welcome page, a new TNS-folder is created.
In this way i could create some more folders.
Thank you very much!
Right click on a connection, add to Folder
Oh, that easy!
Never looked at the connections for this option – always wanted to create the folder and then move somethin into.
Thank you very much!
Any chance to create nested folders, too?
I wanted that or 18.1 but going to try again for 18.2.
Hi Jeff,
I just downloaded and installed v18.1.0. If you navigate to Tools –> Prefs –> Completion Insight, I no longer see the “Change Case as you Type” option. Where did it go? How can I get it back?
Check out the release notes – we removed that feature. Set your formatter preferences as desired and format your code on demand with Ctrl+F7 to achieve the same effect.
The problem with formatter is that it is quite limited. OK… …or maybe powerful, but with features hidden in “Custom Format”, which I have not explored yet.
Anyway: many of us does not use formatter, while automatic case change was very useful.
By the way: I see nothing about drop of automatic case change feature in release notes: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-relnotes-181-4423629.html
Sorry, I will amend the release notes today.
“Sorry, I will amend the release notes today.”
I was expecting:
“Sorry, I will amend the release 18.1 today.” .
π
Hello Jeff, I just downloaded sqlcl 18.1. When I execute sql.exe it takes me to https://www.java.com/en/download/. My previous version still works so I’m not even sure where to begin troubleshooting this.
Thanks
It works for me, what does ‘java -version’ show when you run that from a terminal or cmd window?
There’s also the standalone (20MB) dist of SQLcl available from OTN as well.
I installed java 8 jre. Before it seemed to be using the jre installed with sql developer. Anyway, it’s working great now.
Thank you
Any plans to fix using LDAP to resolve Oracle connection strings vs. using a TNS file?
How do you get the welcome screen to show on starup? I ticked the do not show on my previous version of sql developer.
Thanks
Help > Start Page.
Hi Jeff,
18.1 appears to be missing code snippets (not templates)? has this been removed or have I just lost where it is now found.
Regards
Paul
View > Snippets
That is where I am expecting to see it but … the view menu looks like
…
Reports
SQL History
SSH
Task Progress
…
Try, Window -> Reset To Factory Settings. If that doesn’t work, extract ZIP to a fresh directory and start the app back up.
Thank you.
I have noticed that link to previous version is not working,
however I assume that there’s some typo or just incorrect link, which now directs to:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/ssLINK/4423632
I do not have a bug ID# but you check any table using a database link
My point in asking is if you don’t have a SR or BUG id, you can’t assume we know about the bug, that we’ve reproduced it in-house, and have a fix in the works.
I’ll take a look on Monday.
Thank you for fixing this one, was very annoying.
Now I don’t get it…I’m switching now to 18.1
An error was encountered performing the requested operation:
ORA-00904: “ALL_SHARD”: invalid identifier
00904. 00000 – “%s: invalid identifier”
*Cause:
*Action:
Vendor code 904
Hi Jeff
the F10 shortcut to view the execution plan doesn’t work.
if i use right clic / code execution plan, for me the execution plan is not understandable.
Just tried, it works for me.
>>for me the execution plan is not understandable
How do you mean?
I re try and i works
sorry
No problem!
There is a bug in vr.17.4 that user cannot execute DESC command for the tables that are available on a remote server with a database link.
Is that fixed?
I don’t have that listed as a known issue – do you have a BUG ID# I can look up?
Any plans to include a minimap on the right side of the code editor? Most modern code-editors got this, even JDeveloper (which I think SQLDeveloper is based on).
Like this: https://user-images.githubusercontent.com/6127207/26969438-b22587e8-4d40-11e7-81fb-c3112ff60881.png
Same answer as I gave you on FB, not today π
Sorry, didn’t know this was you on facebook too. Thanks for bearing with me!
No worries π
SQL developer amazing keep evolving, i am waiting for performance feature where sql developer will suggest many of the better execution plans for particular sql and choose best out of it based on execution time
The SQL Tuning Advisor feature from the database, that we have built into the worksheet, kind of already does that π