SQL Developer 4.0 and the Command Line Interface (CLI)

thatjeffsmith SQL Developer 98 Comments

Tell Others About This Story:

SQL Developer has had a command-line interface of sorts. The primary use cases were for formatting files and running unit tests. However, we wanted to expand the support to include things like generating Carts and running reports.

Instead of just creating a few more one-off interfaces, we kind of started over and built a new CLI from scratch. Random Observation: Developers get very excited when they get to redo something.

Rather than call the main executable, we created a new one. So with SQL Developer version 4, when you run ‘sdcli.exe’ from the BIN directory, you’ll see something like this:

SQL Developer command line options

SQL Developer command line options

Please ignore the yellow highlighted text. That’s an error message that shouldn’t be appearing – a bug that we’ll have fixed for the next EA drop.

It’s the green part that’s more interesting!

Available features

What we have available now are the following features:

  • cart: Database Cart Batch Tasks
  • dba: Basic Batch DBA Tasks
  • format: SQL Format Task
  • migration: Database Migration Tasks
  • reports: Basic Batch Reporting Tasks
  • unittest: Unit Testing Batch Tasks

If I want to know the syntax for running one of these features, simply ask for it. Let’s look at Reports first. I reckon that this might be the most popular use case for the command-line interface.

Running Reports via the Command Line

If I run ‘sdcli64.exe reports’ – it will come back with the usage syntax for the reports option:

How do I run a report?

How do I run a report?

Reports Usage:
reports <command> <command arguments>

Supported commands:
generate -report <path> -db <connection name> -file <output file> [-bind <bname>=<bvalue>]* generates an HTML report

Ok, so let’s run a report and see what happens.

C:\Users\jdsmith\Desktop\sqldeveloper\4.0 EA1\sqldeveloper\sqldeveloper\bin>sdcli64.exe reports generate -report "Demo for 4.0 Take Three" -db HR -file "C:\sqldev4.html"
Success!

Let’s break down that command:

sdcli64.exe reports – this part I hope you get

generate – at this time, generating a report is the only feature exposed, so let’s do that

-report “Demo for 4.0 Take Three” – the name of the report, contains spaces, so I’m quoting it

-db HR – the database connection name to run the report against, requires you to have saved the password

-file “C:\sqldev4.html” – the output, where do we want it and what’s it going to be named

At the moment only HTML is available for output options.

Ok, let’s go look at the output – which in this case is an HTML file.

The HTML output from running my report

The HTML output from running my report

All of the charts should render in HTML WYSIWYG – what you see is what you get. I haven’t played with all 6400 new chart types yet, so let me know if you find one it breaks on.

Related Posts

Tell Others About This Story:

Comments 98

  1. Hi Jeff, I need to run a unit test suite using SDCLI on a Unix server (we are automating ut). On this server, I cannot run the GUI so have no chance to create the needed connections within SQL Developer. How can I create the connections.xml file to use with SDCLI? Is there any alternative authentication method in SDCLI?

    1. thatjeffsmith Post
      Author

      Not sure that’s going to work. You can try generating the connections on a different computer and copying the files over, but we’ve built that to NOT carry over the connections.

      So, run the test suite somewhere else, or get GUI support on that server.

  2. Jeff, trying SDCLI reports, I hit a new error.

    E:\sqldeveloper17.4\sqldeveloper\sqldeveloper\bin>.\sdcli reports generate -report “Redo heat map” -db DBNAME -FILE “c:\temp\heatmap.html”
    Invalid reports command: -FILE

    1. thatjeffsmith Post
      Author
    2. thatjeffsmith Post
      Author
    3. Try this:

      — David Mann
      http://ba6.us

      — Archived Log Redo in GB Heat Map for past 31 Days
      — Requires access to v$archived_log, v$database

      — Usage (3 possiblities):
      — o Spool output to file and view with browser
      — o Use SQL Developer PL/SQL DBMS_OUTPUT report type
      — o Paste code into Apex PL/SQL output type and change DBMS_OUTPUT to HTP.P

      — I tried to use a scripted stylesheet but SQL Dev wouldn’t cooperate so
      — that is my excuse for all of the ugly inline CSS. For now 🙂

      — Date Change
      — ———– —————————————————————
      — 24-JUL-2012 Initial version
      — 25-OCT-2012 Only print max value number, trying to reduce visual complexity
      — 08-MAR-2016 Changed report to Redo in GB, updated calulations, added Total col

      –SET SERVEROUTPUT ON
      DECLARE
      myMaxDay NUMBER;
      myMaxHour NUMBER;
      myDBName VARCHAR2(16);

      — dec2hex Function from http://www.orafaq.com/wiki/Hexadecimal
      FUNCTION dec2hex (N in number) RETURN varchar2 IS
      hexval varchar2(64);
      N2 number := N;
      digit number;
      hexdigit char;
      BEGIN
      while ( N2 > 0 ) loop
      digit := mod(N2, 16);
      if digit > 9 then
      hexdigit := chr(ascii(‘A’) + digit – 10);
      else
      hexdigit := to_char(digit);
      end if;
      hexval := hexdigit || hexval;
      N2 := trunc( N2 / 16 );
      end loop;
      return hexval;
      END dec2hex;

      FUNCTION DataCell ( P_Value NUMBER, P_Max NUMBER) RETURN VARCHAR2 IS
      myReturn VARCHAR2(256);
      myColorVal NUMBER;
      myColorHex VARCHAR2(16);
      BEGIN

      — Determine shade of red the P_Value should be compared to Solid Red for P_Max
      — Higher HEX values for G,B render as lighter colors
      myColorVal := ROUND( 255-FLOOR(255 * (P_VALUE / P_MAX)));
      myColorHex := LPAD(TRIM(dec2hex(myColorVal)) ,2,’0′);
      IF P_Value >= P_Max THEN
      myColorHex := ’00’;
      END IF;

      myReturn := ”;
      myReturn := myReturn ||TO_CHAR(P_Value,’9999.9′);
      myReturn := myReturn ||”;

      RETURN myReturn;
      END DataCell;

      BEGIN

      DBMS_OUTPUT.ENABLE(1000000);

      SELECT ROUND(MAX(ROUND(SUM(blocks*block_size)/1024/1024/1024)),1)
      INTO myMaxDay
      FROM v$archived_log
      WHERE trunc(FIRST_TIME) >= trunc(sysdate – 31)
      GROUP BY TO_CHAR(first_time,’YYYY-MM-DD’);

      SELECT ROUND(MAX(ROUND(SUM(blocks*block_size)/1024/1024/1024)),1)
      INTO myMaxHour
      FROM v$archived_log
      WHERE trunc(FIRST_TIME) >= trunc(sysdate – 31)
      GROUP BY TO_CHAR(first_time,’YYYY-MM-DD HH24′);

      SELECT NAME INTO myDBName FROM V$DATABASE;

      DBMS_OUTPUT.PUT_LINE(”);
      DBMS_OUTPUT.PUT_LINE(‘Archived Log Heat Map by Hourly and Daily Redo GB – ‘||myDBName||’ – Past 31 days’);
      DBMS_OUTPUT.PUT_LINE(”);
      DBMS_OUTPUT.PUT_LINE(”);
      DBMS_OUTPUT.PUT_LINE(‘Date / Hour’);
      DBMS_OUTPUT.PUT_LINE(’00’);
      DBMS_OUTPUT.PUT_LINE(’01’);
      DBMS_OUTPUT.PUT_LINE(’02’);
      DBMS_OUTPUT.PUT_LINE(’03’);
      DBMS_OUTPUT.PUT_LINE(’04’);
      DBMS_OUTPUT.PUT_LINE(’05’);
      DBMS_OUTPUT.PUT_LINE(’06’);
      DBMS_OUTPUT.PUT_LINE(’07’);
      DBMS_OUTPUT.PUT_LINE(’08’);
      DBMS_OUTPUT.PUT_LINE(’09’);
      DBMS_OUTPUT.PUT_LINE(’10’);
      DBMS_OUTPUT.PUT_LINE(’11’);
      DBMS_OUTPUT.PUT_LINE(’12’);
      DBMS_OUTPUT.PUT_LINE(’13’);
      DBMS_OUTPUT.PUT_LINE(’14’);
      DBMS_OUTPUT.PUT_LINE(’15’);
      DBMS_OUTPUT.PUT_LINE(’16’);
      DBMS_OUTPUT.PUT_LINE(’17’);
      DBMS_OUTPUT.PUT_LINE(’18’);
      DBMS_OUTPUT.PUT_LINE(’19’);
      DBMS_OUTPUT.PUT_LINE(’20’);
      DBMS_OUTPUT.PUT_LINE(’21’);
      DBMS_OUTPUT.PUT_LINE(’22’);
      DBMS_OUTPUT.PUT_LINE(’23’);
      DBMS_OUTPUT.PUT_LINE(‘Total’);
      DBMS_OUTPUT.PUT_LINE(”);

      FOR cur IN (
      select trunc(first_time) AS Day,
      sum(DECODE(to_char(first_time, ‘HH24′), ’00’, blocks*block_size/1024/1024/1024, 0)) AS “00”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’01’, blocks*block_size/1024/1024/1024, 0)) AS “01”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’02’, blocks*block_size/1024/1024/1024, 0)) AS “02”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’03’, blocks*block_size/1024/1024/1024, 0)) AS “03”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’04’, blocks*block_size/1024/1024/1024, 0)) AS “04”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’05’, blocks*block_size/1024/1024/1024, 0)) AS “05”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’06’, blocks*block_size/1024/1024/1024, 0)) AS “06”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’07’, blocks*block_size/1024/1024/1024, 0)) AS “07”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’08’, blocks*block_size/1024/1024/1024, 0)) AS “08”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’09’, blocks*block_size/1024/1024/1024, 0)) AS “09”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’10’, blocks*block_size/1024/1024/1024, 0)) AS “10”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’11’, blocks*block_size/1024/1024/1024, 0)) AS “11”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’12’, blocks*block_size/1024/1024/1024, 0)) AS “12”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’13’, blocks*block_size/1024/1024/1024, 0)) AS “13”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’14’, blocks*block_size/1024/1024/1024, 0)) AS “14”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’15’, blocks*block_size/1024/1024/1024, 0)) AS “15”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’16’, blocks*block_size/1024/1024/1024, 0)) AS “16”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’17’, blocks*block_size/1024/1024/1024, 0)) AS “17”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’18’, blocks*block_size/1024/1024/1024, 0)) AS “18”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’19’, blocks*block_size/1024/1024/1024, 0)) AS “19”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’20’, blocks*block_size/1024/1024/1024, 0)) AS “20”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’21’, blocks*block_size/1024/1024/1024, 0)) AS “21”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’22’, blocks*block_size/1024/1024/1024, 0)) AS “22”,
      sum(DECODE(to_char(first_time, ‘HH24′), ’23’, blocks*block_size/1024/1024/1024, 0)) AS “23”,
      sum(blocks*block_size/1024/1024/1024) as “Total”
      FROM v$archived_log
      WHERE trunc(FIRST_TIME) >= trunc(sysdate – 31)
      GROUP BY trunc(first_time)
      ORDER BY TRUNC(FIRST_TIME) DESC
      )
      LOOP
      DBMS_OUTPUT.PUT_LINE(”);
      DBMS_OUTPUT.PUT_LINE(”||
      TO_CHAR(cur.Day,’DD-MON-YYYY’)||’‘);
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”00″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”01″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”02″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”03″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”04″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”05″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”06″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”07″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”08″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”09″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”10″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”11″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”12″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”13″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”14″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”15″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”16″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”17″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”18″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”19″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”20″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”21″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”22″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”23″, myMaxHour) );
      DBMS_OUTPUT.PUT_LINE( DataCell(cur.”Total”, myMaxDay) );
      DBMS_OUTPUT.PUT_LINE(”);
      END LOOP;

      DBMS_OUTPUT.PUT_LINE(”);
      DBMS_OUTPUT.PUT_LINE(”);

      END;

  3. Hi,

    We want to execute the sybase sql through sdcli migration -actions=runsql -conn=source_sybase -sql=”select getdate();”command and we are getting below error. Error:java.sql.SQLException: Driver class not found.
    Verify the Driver location. We have installed sybase driver through command sdcli migration -actions=driver -files=C:\driver\jtds-1.2.jar still we are facing the same issue.

    If we try to execute the runsql on Oracle we are getting the output.
    sdcli migration -actions=runsql -conn=Oracle_target -sql=”select sysdate from dual”
    Could you please help me out.

    Thanks in advance.

    Regards,
    Mandar

    1. thatjeffsmith Post
      Author
  4. Hello,
    I try this feature on Linux but error connections like other people.
    On SQL Developer 4.2.0.17.089, I have a connection HR with sys account saved to a db.

    sqldeveloper/sqldeveloper/bin$ ./sdcli reports generate -report TOTO -db HR -file “/home/toto/Downloads/test.html”

    Oracle SQL Developer
    Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.

    Command failed:
    java.lang.IllegalArgumentException: null connection not allowed
    at oracle.dbtools.db.DefaultConnectionIdentifier.(DefaultConnectionIdentifier.java:29)
    at oracle.dbtools.db.DefaultConnectionIdentifier.createIdentifier(DefaultConnectionIdentifier.java:21)
    at oracle.dbtools.raptor.metadata.AbstractDisplayModel.getQuery(AbstractDisplayModel.java:393)
    at oracle.dbtools.raptor.metadata.AbstractDisplayModel.getQuery(AbstractDisplayModel.java:377)
    at oracle.dbtools.raptor.controls.display.html.TableHtmlGenerator.generateHtml(TableHtmlGenerator.java:63)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateStyleSpecificHtml(DisplayHtml.java:391)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateModelHtml(DisplayHtml.java:325)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateHtml(DisplayHtml.java:261)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generate(DisplayHtml.java:202)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:101)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:39)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:629)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

    I change to lower case the DB connection :
    /App/sqldeveloper/sqldeveloper/bin$ ./sdcli reports generate -report TOTO -db hr -file “/home/toto/Downloads/test.html”

    Oracle SQL Developer
    Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.

    Command failed:
    java.lang.Exception: connection ‘hr’ not found
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:84)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:39)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:629)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

    I created the DB connection hr (in lower case)
    /App/sqldeveloper/sqldeveloper/bin$ ./sdcli reports generate -report TOTO -db hr -file “/home/toto/Downloads/test.html”

    Oracle SQL Developer
    Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.

    Command failed:
    java.lang.Exception: connection ‘hr’ not found
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:84)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:39)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:629)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

    1. thatjeffsmith Post
      Author
    2. thatjeffsmith Post
      Author

      It should work then…I’ll say this though, I’ve never tested it with a SYS AS SYSDBA connection before. It should work, but maybe try a non SYS account to see if that makes a difference.

    3. With none SYSDBA user, I have the same error :
      Command failed:
      java.lang.IllegalArgumentException: null connection not allowed
      at oracle.dbtools.db.DefaultConnectionIdentifier.(DefaultConnectionIdentifier.java:29)

  5. Hi,

    I’m trying to generate a report that use mysql connection from the command line and I m getting the following error

    sdcli64.exe reports generate -report “mis-history-per-date” -db “pivot-db.nfb.ca {nfbdba}” -file “f:\mis-history-date.html”

    Command failed:
    oracle.javatools.db.DBException: java.sql.SQLException: Driver class not found.

    I tried to add the mysql connector file within the directory of sdcli64.exe but it did not help
    mysql-connector-java-5.0.4-bin.jar

    Can you please guide how to resolve this.

    Thanks in advance

    1. thatjeffsmith Post
      Author
    2. thatjeffsmith Post
      Author
  6. Hi Jeff,
    I’m trying to run a simple report using sdcli, but I cannot make it work……
    This is what I run and the error I get…

    [[email protected] bin]$ ./sdcli reports generate -report “tbs_cortado” -db DB11G -file “/home/oracle/Informes/Data/tbs_cortado.html”

    Oracle SQL Developer
    Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.

    Command failed:
    java.lang.IllegalArgumentException: null connection not allowed
    at oracle.dbtools.db.DefaultConnectionIdentifier.(DefaultConnectionIdentifier.java:29)
    at oracle.dbtools.db.DefaultConnectionIdentifier.createIdentifier(DefaultConnectionIdentifier.java:21)
    at oracle.dbtools.raptor.metadata.AbstractDisplayModel.getQuery(AbstractDisplayModel.java:393)
    at oracle.dbtools.raptor.metadata.AbstractDisplayModel.getQuery(AbstractDisplayModel.java:377)
    at oracle.dbtools.raptor.controls.display.html.TableHtmlGenerator.generateHtml(TableHtmlGenerator.java:63)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateStyleSpecificHtml(DisplayHtml.java:391)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateModelHtml(DisplayHtml.java:325)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generateHtml(DisplayHtml.java:261)
    at oracle.dbtools.raptor.controls.display.DisplayHtml.generate(DisplayHtml.java:202)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:101)
    at oracle.dbtools.raptor.report.headless.ReportsProcessor$GenerateReportTask.doWork(ReportsProcessor.java:39)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:629)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)

    FYI, the report works fine in SQLDeveloper GUI, password connection is saved as required but I can’t make it work…….Am I missing something???

    Thanks in advance.
    Marcelo

    1. thatjeffsmith Post
      Author
    2. thatjeffsmith Post
      Author

Leave a Reply

Your email address will not be published. Required fields are marked *