Oracle SQL Developer

Recentemente ho “rispianato” il mio PC, in realtà ho cambiato hard-disk e quindi ho (qualcun’altro ha) intallato Winzoz xp. In questa operazione ho compiuto una grande rivoluzione: non ho installato nessuna versione di Oracle server. Ebbene devo confessare che sono uno dei pochi che rimpiange la definitiva scomparsa, con oracle 11g di SQL*Plus Worksheet. Una spece di SQL*Plus con interfaccia semigrafica realizzata in Java. Penso facesse parte del “Enterprise Manager” (ed in fatti il riferimento precedente è al manuale di “Enterprise Manager”.

SQL*Plus Worksheet è un programma molto disprezzato e credo poco usato, con qualche difetto ma secondo me anche con qualche pregio. Ad esempio la facilità ad impostare linesize superiori agli 80 caratteri ed a visualizzare i risultati delle query senza dover fare mille settaggi e limitare il numero di colonne selezionate, come occorre spesso fare con il buon vecchio SQL*Plus. SQL*Plus Worksheet manteneva una storia dell’input (facilmente scorribile con CTRL-p) e una storia dell’output (come si ha con SQL*PLus normale). Non mi trovo assolutamente comodo con strumenti grafici come TOAD (che ho visto ma MAI usato) che utilizzano un output tabellare ben formatattato, che è bello e comodo, ma sovrascrive l’output della query precedente.

Ad ogni modo nella mia macchina ho installato solo l’instant client ed ho deciso di dare una nuova possibilità a Oracle SQL Developer. Nelle prime versioni era francamente molto scarso.  Oggi ho scaricato l’ultima versione perchè improvvisamente sulla versione che stavo usando hanno misteriosamente smesso di funzionare i tasti canc e backspace (ho anche provato a riavviare il pc ma se senza speranza).

La cosa che mi piace di più di Oracle SQL Developer è che funziona anche in modalità simile  a quella di SQL*Plus Worksheet. Anni di abitudine a schiacciare f5 per eseguire uno statement mi hanno fatto scoprire che in SQL Developer lo stesso tasto provoca lo stesso comportamento e lo stesso formato di visualizzazione del risultato dell’esecuzione dello statement. Un problema con cui mi sto scontrando nella transizione è la gestione  della modalità “serveroutput on”. Fra l’altro oggi ho scoperto che il default da 10g in poi è unlimited. Eseguendo script PL/SQL che sparano output con DBMS_OUTPUT ad oggi non ho trovato il modo di modificare il limite impostato per default su SQL Developer di 20000 caratteri.

Riguardo all’utilizzo di SQL*Plus, quello tradizionale, cerco sempre di mantenermi allenato, questo mi permette di essere preparato quando non ho la possibilità di usare il mio PC o quando non ci sono alternative, ricordatevi che dove c’è un database  Oracle  c’è ancora una sola certezza: c’è SQL*Plus. Segnalo un post di Tanel Poder in cui l’autore mette a disposizione degli script che ho trovato fichissimi: “Sqlplus is my second home“, provare per credere.

Un’ultima nota che volevo fare è quella di fare attenzione a “set serveroutput on”. Io recentemente l’ho messo nel file glogin.sql ed oggi, facendo esperimenti sulle orme di Greg Rahn ho riscontrato un effetto collaterale (di cui mi sono subito reso conto perchè ne avevo letto qualcosa nel libro di Thomas Kyte). Settando serveroutput on, implicitamente SQL*Plus fa delle chiamate alle procedure di DBMS_OUTPUT (lo si può benissimo vedere attivando il trace della sessione), quindi ad esempio non funziona la query per visualizzare il piano di esecuzione e le statische con il package DBMS_XPLAN (SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS LAST'));

Il risultato è questo:


SVILUPPO40@perseo10 > select * from dual;

D
-
X

SVILUPPO40@perseo10 > SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS LAST'));

PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------
SQL_ID  9babjv8yq8ru3, child number 1

BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;

NOTE: cannot fetch plan for SQL_ID: 9babjv8yq8ru3, CHILD_NUMBER: 1
      Please verify value of SQL_ID and CHILD_NUMBER;
      It could also be that the plan is no longer in cursor cache (check v$sql_plan)

Selezionate 8 righe.

P.S. (18 Luglio 2008)
Ho notato una grossa innovazione nell’ultimissima versione di SQL Developer che ho scaricato ieri sera.
Nella versione precedente con la combinazione CTRL-<freccia su> o CTRL-<freccia giu> si poteva scorrere
comodamente la storia degli statement SQL lanciati, lo statement rimpiazzava quello corrente.
Nella nuova versione, accidenti a loro il comportamento è quello di “appendere”. Ora il comportamento
sembra più simile a quello che ho visto in TOAD, facendo f5 viene eseguito oppure se si seleziona
qualcosa, viene eseguito solo ciò che è selezionato. Personalmente questo non mi eccita molto. Si tratta della filosofia che predilige l’utilizzo del mouse, ma personalmente mi trovo più a mio agio (e sono più veloce) con la tastiera. Utilizzando il tasto F8 si apre la finestrella con lo storico, ma a questo punto occorre utilizzare il mouse per selezionare lo statement da ripescare e poi vi sono le due possibilità (via mouse) rimpiazzare o appendere.

6 pensieri su “Oracle SQL Developer

  1. Alessandro Deledda

    Tanel è entrato anche nella mia personale top list delle fonti affidabili per quanto riguarda il mondo Oracle 😉

    SQL Developer, soprattutto nelle ultime versioni, devo ammettere mi piace davvero

    Ciao
    Alessandro

  2. Pingback: Oracle SQL Developer - II « Oracle and other

  3. Pingback: SQL*Plus e SQL Developer « Oracle and other

  4. guglielmo b.

    da qualche tempo uso ORACLE SQL Developer , per sviluppare applicazioni in PL/SQL su database ORACLE 10g ;
    da ieri pomeriggio , 7-4-2009 , non riesco più a modificare le procedure che stavo preparando , pure entrando in modalità edit ;
    non riesco a capire perchè , ho provato a chiudere , anche il sistema , e ripartire , ma niente ;

    cosa devo fare ? reinstallare il prodotto ? non è per caso terminato il periodo di utilizzo ? dovrebbe essere free , da quello che so ;

Scrivi una risposta a SQL*Plus e SQL Developer « Oracle and other Cancella risposta