Nearly 7,000,000 Oracle professionals use SQL Developer on a regular basis. Have a question about Oracle SQL Developer? Searched this blog and couldn’t find the answer? Ask away!
If your question is about Oracle Database, SQL, PL/SQL, etc – go Ask Tom!
Feel free to ask anything you want, but I’ll feel free to send you to Support or our Forums if it goes sideways.
Note: This page has turned out way more successful(?) than I would have ever imagined. Please keep these things in mind when asking questions.
- I am NOT support. Don’t expect me to log bugs for you, or give you official timelines on bug fixes, enhancements, or product releases.
- I AM NOT SUPPORT. Don’t open an SR with My Oracle Support AND leave a question here. Pick one and go with it, and when in doubt, go to My Oracle Support.
- I try to answer questions as quickly as possible. If you don’t get an answer, ask me for an update. I may have just forgotten or overlooked your request.
Go!
7,793 Comments
Python Script to Update Connection Passwords in SQL Developer:
Our script runs regularly to keep the passwords for our Oracle users fresh. So, once a password in Oracle changes, how can the script propagate the new password to SQL Developer? Currently, we need to look up the new password in a reference file and update the connection properties in SQL Developer manually.
You can’t manage passwords outside of the UI, we encrypt the passwords in the file.
It would be nice if there was an option to prevent the grid from doing a SELECT * FROM TABLE when you click on the Data tab…. a default filter (or the last filter you used) would prevent unnecessary queries to the database
Using ORDS it is pretty straightforward to have my insert, update and delete statements in a package and call the package methods with the appropriate handler. However, for a GET, I don’t see a clean way to do this. I know I can use POST for an RPC call to do a SELECT, or I can include the SELECT statement itself in the handler, but is there a way to have the SELECT in a package that returns JSON without using the HTP package or APEX_JSON package to build the output? I’m trying to have all my login in a package (cleanly) without having the GET logic in the handler.
Thanks
Further searching led me to a possible answer. Is there a problem with the following approach?
CREATE OR REPLACE FUNCTION test RETURN SYS_REFCURSOR AS
vRC SYS_REFCURSOR;
BEGIN
OPEN vRC FOR SELECT *
FROM employees
WHERE empid = 34650;
RETURN vRC;
END;
And in the GET handler ….
SELECT test
FROM dual;
Of course parameters could be added to the function and called in the GET handler. And I assume the cursor would be implicitly closed by the SELECT in the GET handler?
That’s what I was going to suggest, have a procedure run the query and return the data via a sys refcursor.
Hey Jeff, can u tell me where I can find instructions on how to setup sql developer to use encrypted(SSL) jdbc connections to the db?
Not now, I’m on vacation. But I can tell you it’s possible. Easiest when doing oci thick connections with ssl configured via sqlnet.ora
Hey Jeff can you post the instructions for using ssl/jdbc with sql developer? We are using the thin jdbc drivers but if all you have is the thick we can try using that.
The way to go today is THICK
If you can do a regular thin jdbc connection with sql developer I can’t see why you wouldn’t be able to ssl connection. In any case can you point me to the jdbc thick driver instructions?
because we don’t have it setup in sqldev to easily configure a ssl thin driver connection, to be able to set the properties for the wallet, etc
for thick, just setup your sqlnet.ora and tnsnames.ora file appropriately, and then tell sqldev to use your ORACLE_HOME and check the ‘use thick’ checkbox in advanced preferences
QUESTION: What sequence of commands must I use in Terminal in macosn to start using sqlcl?
BACKGROUND:
Oracle SQL Developer 18.2.0.183 is working just fine
and connected to an 11g instance in Linux 7 in Virtualbox 5.2.12.
The connection as defined for SQL Developer:
connection name: localrpo
username: rpo
password: XXXXX
connection type: basic
role: default
hostname: local
port: 1521
SID: orcl
The sqlcl folder (created 25-Jun-2018) resides in:
Macintosh HD/Applications/
Open a BASH terminal window.
Type ‘sql’
This assumes your Macintosh HD/Applications/sqlcl/bin folder is in your PATH. If not, then add it, or manually CD over to where it is, and run the SQL program over there.
Great. It got me very close but not quite there. Here’s the resulting dialog, followed by my comments::
SQLcl: Release 18.2 Production on Wed Jul 18 17:02:35 2018
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Username? (”?) rpo
Password? (**********?)
USER = rpo
URL = jdbc:oracle:thin:@localhost:1521/orcl
Error Message = ORA-01005: null password given; logon denied
USER = rpo
URL = jdbc:oracle:thin:@localhost:1521/xe
Error Message = Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
Username? (RETRYING) (‘rpo/’?) rpo
Password? (RETRYING) (**********?) *******
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Comments: manually supllying the username “rpo”and then the password got me in, but how can I avoid having to reenter these bits? The strongest clue is probably in the statement “TNS:listener does not currently know of service requested in connect descriptor” But how can I supply that knowledge to the listener? (what listener?)
Herb, there’s a lot to go through there. But the main thing: there’s really no way to get into the database w/o your user credentials. Without a password, you’re not going anywhere near the data.
‘undefine’ works with Oracle, but not Postgres.
2-line script which returns only 3 rows (for simplicity’s sake)
undefine cc ;
select unit_of_measure_name, &&cc cc, &&cc+1 “cc+1” from unit_of_measure;
In Oracle, running the ‘select’ only prompts me once, as expected. Re-running it uses the same value. If I want to re-run it with a different value, I execute the ‘undefine cc’ first, then the ‘select’. And I’m prompted again. All good.
But if I’m accessing Postgres, the ‘select’ behaves as expected. But the ‘undefine cc’ errors, as if it’s invalid:
Error starting at line : 1 in command –
undefine cc
Error report –
ERROR: syntax error at or near “undefine”
Position: 1
Does ‘undefine’ only work with Oracle? For Postgres, is there another way to specify a different value for the variable?
Tearing my hair out….
Sorry, I’m an Oracle guy, not Postgres.
But in general, using SQL*Plus commands, those are only going to work on the oracle connections in SQL Developer.
figured out a working, but inelegant solution:
execute the following:
exit;
Then re-run the query. Voila – prompting happens again
I’d rather you move your data into Oracle, but I’m happy you’re not pulling your hair out.
Hi Jeff – When using spool to generate a CSV file is there a way to set the encoding type for the file? In SQL Developer v17.4 (and previous) it was ANSI and starting with version v18.1 it is UTF8. The problem that I am having is French characters are not displaying properly in Excel with spool files generated with versions 18.1 or 18.2. Thanks – Mark
Why not, Excel can’t handle UTF-8 encoded files?
Excel will read the file properly and display the correct French characters if it is UTF8-BOM (or ANSI). Example: the word “série” appears as “série” if the file is encoded in UTF8. The really issue here is that it appears SQL developer changed the file encoding type from ANSI to UTF8 with v18.1.
I see now, and I don’t think the problem is with the Spool. Stay tuned.
Hi Jeff – Just wondering if you have any update on this. I just tested the new release Version 18.3.0.277.2354 – Windows 64-bit with JDK 8 included and it is still spooling in UTF8. Thanks – Mark
According to your blog on ORDS.
you said “ORDS doesn’t require APEX, and you can run APEX without ORDS”.
I know ORDS doesn’t required APEX. But, How APEX run without ORDS?
I know that APEX should be run on only ORDS or ORDS+WLS.
SK.
In 2018, you’re right. APEX previously supported the xmldb listener in the Database.
Today, you should really be running ORDS.
WLS is overkill though. Most of our customers seem to like Apache and Tomcat, although the standalone ords config seems to be taking off.
What’s the easiest way to find out what the Number of Database Tables in Oracle SQL Developer without having to count them manually? 🙂
I have SQL*Developer 18.1.0.095 (Build 095.1630) installed on my desktop. I see from the SQL*Developer website that 18.2 is available. So in SQL*Developer I click on Help -> Check for Updates… Automatically check for updates as startup is not checked. Search Update Centers button is selected and the only box checked is for ‘Oracle SQL Developer’ (http://apex.oracle.com/pls/apex/dbtools/usage/cfu). I click on ‘Next’, the ‘Select updates to install’ window displays with ‘Loading…’ for a few seconds and then…nothing. There are no updates listed. Why?
That shows updates for Extensions, not for the product itself.
Hi,
sqldeveloper 18.2 aborts during startup on windows7 64-bit.
Any idea where to start looking ?
I downloaded this version Windows 64-bit with JDK 9 included?
Knut
Aborts…how?
You can find your system18.2 folder under User > AppData > Roaming > SQL Developer. Rename that folder, try restarting SQLDev.
It’s aborting when it starts loading the extensions.
Renaming did work. Guess I do need then to move connections and snippets manually.
Knut
yeah, that’s why I advised you ‘rename’ that folder vs nuke it. And by ‘manually’ – just copy the files/folders over, you should be fine.
Hi Jeff,
If I save my function or package in file system ( c:\abc\func1.sql or c:\abc\pkg.sql ) .
I really want to work on that files as we do in toad .
What happening in sqldeveloper , I need to compile this as function , and then work on that function . But those changes are in database not saved to file . Then development is over , I need to export that file to save as c:\abc\func1.sql.
In this approach , problem is that , without notice , dba go ahead refresh database and I loose my work. Hence when I save file , it should save c:\abc\func1.sql, then if I want to compile I can compile in sqldeveloper.
How to do that, I am not understand that.
Please help
Amey
You can do what you want, in SQL Developer.
Open your file. Do your work – save as you need. We even keep a local file history for you.
When you’r ready to compile, assign your editor a connection.
Hi Jeff,
First, thanks for Oracle SQL Developer, I love this tool.
Now the problem I have: “desc” command in SQL Worksheet fails with some tables, getting the error “ERROR: object MYTABLE does not exist”, but when I do the same from Sql*Plus Instant Client it works fine. I can reproduce this issue with any table having a TRIGGER with the same name than the table:
select OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS from dba_objects where object_name=’MYTABLE’;
OWNER OBJECT_NAME OBJECT_TYPE STATUS
——————– ——————– ——————– ———————
PUBLIC MYTABLE SYNONYM VALID
MYUSER MYTABLE TABLE VALID
MYUSER MYTABLE TRIGGER VALID
I think this is a bug with SQL Developer, because it works fine with Sql*Plus.
SQL Developer version is “Versión 18.2.0.183”
Thank’s in advance
Best regards
No bug.
I am guessing you need to review what DESC is actually doing when it is called and the ownership of the object it is being asked to DESCRIBE. Your select statement is invalid as proof as you are assuming DESC and SELECT return information via the same mechanism/source. This is not the case. You will find this is consistent using sqlplus as well. All comes down to synonyms and privs.
Regards
Thank you very much Steve,
May be I didn’t explain clearly:
If you create a table “mytable” with a trigger “mytable” (yes, same name), and then you run “desc mytable” from Sql*Plus, it works fine. But it fails when you run “desc mytable” from Oracle SQL Developer, with the same user in both cases.
If you drop the trigger, it works fine with both tools.
If you create the trigger with a different name than the table, for example “trg_mytable”, it also works fine. So the problem with “desc mytable” from Oracle SQL Developer is when there is a trigger with the same name than the table.
You can try this script and next run “desc mytable” from Sql*Plus and Oracle SQL Developer to see the issue:
CREATE TABLE mytable (
c1 NUMBER,
c2 VARCHAR2(2)
);
CREATE SEQUENCE seq_mytable CACHE 5;
CREATE OR REPLACE TRIGGER mytable BEFORE
INSERT ON mytable
FOR EACH ROW
BEGIN
IF inserting THEN
IF :new.”C1″ IS NULL THEN
SELECT
seq_mytable.NEXTVAL
INTO :new.”C1″
FROM
dual;
END IF;
END IF;
END;
Thank’s in advance
Best regards
Did you notice too or is it just me …
Using SQL-Developer I created a user defined report using “vertical combination chart”.
The report shows correctly only in the preview page.
After saving and opening the report in normal reporting mode it shows the 5 graphs as if their diagram type never were configured: bar, line, area, bar, line.
I tried this with different versions of SQL-Developer (18.2, 17.2, 4.1.2) and on different machines. I always get the same result and behavior: good in preview but not good when using the report.
Do you encounter the same?
Hi Jeff,
How to add privileges in the MODEL (Oracle Data Modeler 4.2.0 Build 932).
When importing from the database to the MODEL, the privileges are not assigned to the roles or to the users.
I would like to upload the DDL file (grants, roles and users) to the model. Can you do this?
Assigning privileges one by one is a very crippling task.
Thanks in advance.
>> MODEL, the privileges are not assigned to the roles or to the users.
Hmm, sounds like an Import bug, I’ll go test in version 18.2 and get back to you.
NLS_DATE_FORMAT question. I’m using a database that has a login trigger, once any user is logged in, their NLS_DATE_FORMAT gets set to YYYY-MM-DD via the login trigger.
If I log in using SQL Developer, I issue “show parameter nls_date_format” and it shows me this:
SQL> show parameter nls_date_format
NAME TYPE VALUE
————— —— ———-
nls_date_format string YYYY-MM-DD
Good, makes sense so far.
I check v$parameter:
SQL> select value
2 from v$parameter
3 where name = ‘nls_date_format’;
VALUE
———-
YYYY-MM-DD
1 row selected.
All good there. But when I run the following query, the results are somewhat surprising.
SQL> select sysdate from dual;
SYSDATE
———
10-JUL-18
1 row selected.
I’m not sure what’s going on here. A Wireshark trace of running the query from SQL Developer shows that the nls_date_format for the query is definitely, definitely set to YYYY-MM-DD. So the only thing I can think of is that SQL Developer must be playing with my date. What’s going on?
What does this show?
On session being established we do several ALTER SESSIONs…one of the is setting the data format to what you have set in preferences, a la –
SQL> SELECT * FROM NLS_SESSION_PARAMETERS WHERE parameter = ‘NLS_DATE_FORMAT’;
PARAMETER VALUE
—————————— —————————————-
NLS_DATE_FORMAT DD-MON-RR
1 row selected.
I guess I don’t have an understanding of how this works. How is NLS_SESSION_PARAMETERS showing me something different than v$parameter or SHOW PARAMETER?
one is what the database is set to, the other is what your database SESSION is set to
Why is it different for nls_date_format vs anything else?
SQL> col name for a30
SQL> col value for a10
SQL> select name, value
2 from v$parameter
3 where name = ‘db_file_multiblock_read_count’;
NAME VALUE
—————————— ———-
db_file_multiblock_read_count 128
1 row selected.
SQL>
SQL> alter session set db_file_multiblock_read_count = 8;
Session altered.
SQL>
SQL> select name, value
2 from v$parameter
3 where name = ‘db_file_multiblock_read_count’;
NAME VALUE
—————————— ———-
db_file_multiblock_read_count 8
1 row selected.
You can tell the database that you’re in a specific timezone, region, locale. Then it can respond to you in way that makes sense to YOU, vs what makes sense to the database. Check out the Docs on this subject – they have an entire book.
I just downloaded SQL Developer 18.2.0.183.1748. I looks awful with Windows font size increased to 140%.
How can I switch back to the old style?
Tell me about your monitor, is it high dpi, like a 4 or 5k display?
If so, try forcing sqldev to a java 8 jdk
My monitor is an old HP LP2065 with 1600×1200 resolution.
Thank you for your advice. Java 9 jdk causes the problem. I went back to java 8 jdk and the problem was gone.
Hi Jeff,
I have a question regarding to recent files, there is a way to increase the number of recent file in recent files folder?
Thanks
Roberto
Hi Jeff
Just downloaded 18.2 and i can’t find the snippets tool from the view menu – it was there in 18.1 – has it been renamed or removed in 18.2
Thanks
Paul
It’s there, try re-setting your desktop (Window – Reset Windows to Factory Settings)
Cheers Jeff that’s sorted it – keep forgetting about that setting
Its always been fine installing before
Thanks
Hi Jeff.
I know there is external tools within sql developer and I was wondering what it would take to hook up sqlcl to sqldevloper so I can right click on a connection within sql developer and it opens up in sqlcl?
Thanks!
It would take some code from us on our end. It’s a known enhancement request.
Cool. I have logged it as a feature request.
I have a quick question on SQLcl.
What is the process for it checking that Java (and the correct version) is ‘present’? Particularly on Windows. For example Does it check a registry key?
Can I use a ‘non-installed’ version of Java that doesn’t appear in the list of programs? I have copied a 8u171 Java installation to a location, set JAVA_HOME and my PATH accordingly.
java -version works. I figured out that SQLcl is 32-bit so I used a 32-bit JRE but I still can’t get it to work.
I consistently get ‘This application requires a Java Runtime Environment 1.8.0_150’ and the aggressive automatic browser launch. On another machine with Java ‘installed’ it’s fine.
Thanks
Graeme
Sorry – mean to mention – I’m using the 18.1.1 version
Hi Jeff,
I need to implement an e-mobility industry protocol that requires results to be delivered in a predefined JSON format.
I have created a set of PL/SQL packages and some ORDS modules, templates and handlers based on source type ords.source_type_plsql. This all works fine, however, the protocol requires to have the following optional parameters: limit and offset.
These parameters are pre-defined ORDS parameters to be used with Collection Query, so I am unable to use them in relation with handlers based on PL/SQL; it leads to 405 Bad Request errors.
Is there a possibility to use limit and offset as parameters for PL/SQL based handlers?
How are you generating the JSON responses? Are you using the auto PL/SQL? Writing your own PL/SQL? What does your PL/SQL do? Can you share your handler code?
How are you generating JSON responses?
I just print the response using htp.p commands.
Are you using the auto PL/SQL?
No, we have to provide GET methods, and as far as i know auto PL/SQL is only possible for POST methods.
Writing your own PL/SQL?
Yes, using cursors to select data out of our tables and print the results using htp.p.
What does your PL/SQL do?
Two tables: LOCATIONS and PHYSICAL_OBJECTS, with a 1 to many relationship.
It basically selects locations from the location table and selects objects linked to that location from an objects table.
It prints a JSON message for each location including one or more objects.
For instance, a simplified example:
{ “locations”:
[
{ “id”: 1,
“type”: “STREET”,
“name”: “location 1”,
“objects”: [ { “id”:1,
“name”:”object 1″,
“status”:”AVAILABLE”,
“height”:220
},
{ “id”:2,
“name”:”object 2″,
“status”:”RESERVED”,
“height”:210
}
]
}
]
}
Can you share your handler code?
( yes, in simplified form, see next reply)
/* create module */
BEGIN
ords.define_module(p_module_name => ‘protocol1’,
p_base_path => ‘protocol1/’,
p_items_per_page => 10,
p_status => ‘PUBLISHED’,
p_comments => ‘Protocol 1 Module’);
COMMIT;
END;
/* define template */
BEGIN
ords.define_template(p_module_name => ‘protocol1’,
p_pattern => ‘locations’,
p_comments => ‘Locations template’);
COMMIT;
END;
BEGIN
ords.define_handler(p_module_name => ‘protocol1’,
p_pattern => ‘locations’,
p_method => ‘GET’,
p_source_type => ords.source_type_plsql,
p_source => ‘begin get_locations(:limit,:offset);end; ‘,
p_comments => ‘locations GET handler’);
COMMIT;
END;
/* create table locations */
create table locations
( id number(10)
, location_type varchar2(20)
, name varchar2(50)
, CONSTRAINT locations_pk PRIMARY KEY (id)
);
insert into locations (id, location_type, name) values (1,’STREET’,’Location 1′);
/* create table objects */
create table objects
( id number(10)
, name varchar2(50)
, object_status varchar2(20)
, height number(5)
, location_id number(10)
, CONSTRAINT objects_pk PRIMARY KEY (id)
, FOREIGN KEY (location_id) REFERENCES locations(id)
);
insert into objects (id, name, object_status, height, location_id) values (1,’object 1′,’AVAILABLE’,220,1);
insert into objects (id, name, object_status, height, location_id) values (2,’object 2′,’RESERVED’,210,1);
/* create procedure get_locations */
create or replace procedure get_locations (p_limit in number, p_offset in number) as
cursor c_locations (p_l_limit number, p_l_offset number) is
select id
, Name
, location_type
from locations
order by id
OFFSET p_l_offset ROWS FETCH NEXT p_l_limit ROWS ONLY;
cursor c_objects (p_l_location_id number) is
select id
, Name
, object_status
, height
from objects
where location_id = p_l_location_id
order by id
;
l_limit number := 1000;
l_offset number := 0;
l_first_location number :=0;
l_first_object number :=0;
begin
/* start printing the output */
htp.p(‘{ “locations”: [‘);
/* only set limit and offset if parameter is not null */
if p_limit is not NULL
then
l_limit := p_limit;
end if;
if p_offset is not NULL
then
l_offset := p_offset;
end if;
/* fetch locations */
for r_locations in c_locations (l_limit, l_offset ) loop
if l_first_location = 1
then
/* print a comma */
htp.p (‘,’);
end if;
if l_first_location = 0
then
/* make sure the first time, no comma is printed */
l_first_location := 1;
end if;
htp.p(‘{ “id”:’||to_char(r_locations.id)||’,’);
htp.p(‘ “type”:”‘||r_locations.location_type||'”,’);
htp.p(‘ “name”:”‘||r_locations.name||'”,’);
htp.p(‘ “objects”:[ ‘);
for r_objects in c_objects(r_locations.id)
loop
if l_first_object = 1
then
/* print a comma */
htp.p (‘,’);
end if;
if l_first_object = 0
then
/* make sure the first time, no comma is printed */
l_first_object := 1;
end if;
htp.p(‘{ “id”:’||to_char(r_objects.id)||’,’);
htp.p(‘ “name”:”‘||r_objects.name||'”,’);
htp.p(‘ “status”:”‘||r_objects.object_status||'”,’);
htp.p(‘ “height”:’||to_char(r_objects.height));
htp.p(‘}’);
end loop;
/* print the closing brackets for object */
htp.p(‘ ]’);
htp.p(‘}’);
end loop;
/* print the closing brackets for location */
htp.p(‘ ]’);
htp.p(‘}’);
end get_locations;
Cool, thanks for sharing!
I have your scenario running on my box now.
So, you just want to also add an offset and limit value pair at the bottom, or do you also want a link for NEXT based on the offset?
If i call this service without parameters:
https://www.test.nl/ords/api/protocol1/locations
{
“locations”: [{
“id”: 1,
“type”: “STREET”,
“name”: “Location 1”,
“objects”: [{
“id”: 1,
“name”: “object 1”,
“status”: “AVAILABLE”,
“height”: 220
},
{
“id”: 2,
“name”: “object 2”,
“status”: “RESERVED”,
“height”: 210
}
]
}]
}
If I call this service with parameter limit:
https://www.test.nl/ords/api/protocol1/locations?limit=1
400 – Bad Request
I TOTALLY missed the point of your question, I was thinking you wanted to use them in the response, not in the parameters, although you very clearly stated so.
They are unfortunately reserved by ORDS. I don’t suppose you can tack a 1 at the end of yours? Otherwise I can log an ER for your scenario.
Yes, indeed, I was talking about the parameters. But thanks a lot for you fast response, much appreciated.
Unfortunately, indeed, the protocol we are using defined the use of the parameters “limit” and “offset”, so I cannot use other words.
Another solution I am thinking about is using URL rewrite rules to change the parameters from limit into limit1 and offset into offset2, but this has some drawbacks, so I would be very happy if you could log my scenario as an Enhancement Request. Thanks again.
There is such a way. On your rest handler set “pagination size” setting to pagination size: 0;
Hi Jeff, I was wondering, who gave you the idea for adding this super-successful page to your blog?
Seriously, I am new to ORDS but have an advanced issue. [insert zinger here]
If I define a handler, and protect it with OAuth2 using a grant type of “client credentials”,
Is there a way that ORDS can provide the CLIENT_ID to the hander or allow the handler to query ORDS to retrieve the CLIENT_ID?
Thank you.
setting page to 0 does the job.
Thank you Slava !!
When I trying to debug Oracle 12c stored procedure using SQL Developer 18.1 there is an error:
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( ‘10.1.5.16’, ‘58700’ )
ORA-24247: network access denied by access control list (ACL)
ORA-06512: on “SYS.DBMS_DEBUG_JDWP”, line 68
ORA-06512: on line 1
The origin of this error was described in many blogposts and required steps are well known.
But DBA could decline because of in some other popular IDEs (such as TOAD, PL/SQL Developer etc… the debugging is working). Is it possible to switch from debugging via JDWP to mechanism used in other IDEs (I believe it is related to OCI).
Maybe there is some strong pros of JDWP if it is the only option in SQL Developer?
Thanks!
Toad used to support the JDWP debugger interface, but they dropped that a few years ago.
You can use the old, Probe API debugger in SQL Developer, but we discourage it because it’s basically seen very little active development over the years and it doens’t support the ability to do things like automatically watch your PL/SQL tables. In the old debugger you have to declare in your code, local variables, to hold the contents of your PL/SQL tables and watch those.
ACL is not a debugger thing, it just affects the debugger.
Most shoppes have an official, supported database tool. Does yours?
Thank you for your answer!
I believe that in our case each single developer is using the tool preferred by himself. And most of database developers are fond of PL/SQL Developer or Toad. A couple of devs are using Jetbrains Datagrip, but my opinion that official Oracle tool would be the best choice for Oracle database development, but I’m primarily Java server-side developer.
IF they use the debugger A LOT, let them know there’s more they can get out of it – assuming you’ll be willing to open up the ACL on your development machines.
Hi Jeff,
During modelling in SQL Developer Data Modeller I found out that I cannot define range subpartitions in composite HASH-RANGE level. Could you please clarify on that, because nothing mentioned in the docs.
Thank you.
is this a modeler question or a database question?
This is modeller related question.
OK, so I dont have to waste time googling, can you send me a sample DDL you are trying to represent in the modeler?