Grazie al prezioso aiuto dell’esperta “Stefania Leone”, dba non vedente, condivido un approfondimento sul software in oggetto, in riferimento al pl-sql. Consiglio questa lettura a chi ha già maturato una certa esperienza con i database, DBEaver e lettore di schermo.
Cosa è il pl-sql
Ecco cosa ci dice Wikipedia sul pl-sql: “In informatica il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione proprietario (per database di Oracle Corporation), procedurale, server-based, estensione dell’SQL. Linguaggi simili al PL/SQL sono inclusi in altri database management system SQL. La sintassi è fortemente simile a quella del linguaggio di programmazione Ada”. (approfondisci).
Cosa è una stored procedure
Sempre Wikipedia, ci da delle indicazioni per definire il concetto di stored procedure: “Una stored procedure è un programma scritto in SQL o in altri linguaggi, mantenuto nel database stesso, archiviato nel cosiddetto database data dictionary. Spesso è scritta in versioni proprietarie di SQL, che sono dei veri e propri linguaggi strutturati, come il PL/pgSQL di PostgreSQL o il PL/SQL di Oracle, all’interno dei quali è possibile scrivere codice SQL”. (approfondimento)
Il punto di vista di Stefania Leone
Sono un’analista programmatore ed utilizzo per lavoro il Database Oracle su cui,oltre che navigare per consultare le tabelle le strutture e i dati,scrivo STORAGE PROCEDURE e PACKAGE in linguaggio di programmazione pl-sql.
Il tool di cui l’azienda in cui lavoro ha acquistato la licenza è SQL Navigator;
fino alla versione 6.2 del tool, lo trovavo abbastanza accessibile con screen reader Jaws for windows(con le dovute accortezze e strategie): per diversi anni mi sono barcamenata tra alcune combinazioni di tasti e il cursore invisibile di Jaws,per raggiungere alcune finestre per la visualizzazione degli errori di compilazione o di output di esecuzione, e riuscivo a lavorare e ad essere operativa.
Ultimamente,per motivi di policy aziendali e licenze di prodotti,abbiamo dovuto installare una nuova versione del tool sql Navigator,la 7.3 e poi la 7.4 e inizialmente tutto mi era sembrato analogo alle versioni precedenti,ma nel tempo,lavorandoci,ho notato che jaws rispondeva male alla semplice editazione del testo del codice sorgente degli script delle procedure,e per esempio,spostandomi con i tasti freccia, mi leggeva male righe e caratteri,come se gli restassero in memoria quelli immediatamente precedenti,o ne saltava alcuni,come se avesse una sorta di eco.La cosa risultava molto faticosa e sgradevole al momento di scrivere codice,cancellare righe o caratteri,selezionare parti di programma per spostarle,tutte azioni che necessitano di uno screen reader chiaro e preciso.
Ho chiesto dunque aiuto ad Alessandro Albano che mi ha consigliato il prodotto DBEAVER,che ha il vantaggio di essere free e compatibile con lo screen reader NVDA,anch’esso free.
Li sto quindi provando da circa un mese e,a parte il periodo iniziale di impatto un po’ difficile,ne sto apprezzando un certo vantaggio.
Prima di iniziare a lavorarci ho aggiunto ad NVDA il plugin delle voci del sintetizzatore Eloquence,ovvero le voci di jaws,sia per familiarità che per la chiarezza del suono; quindi,come Alessandro ha già ampiamente spiegato,o imparato come navigare tra le finestre di DBEAVER seguendo i suoi ottimi spunti e suggerimenti.
Molte delle opzioni piu’ interessanti vengono attivate selezionando shift+ f10 che corrisponde anche all’apertura del menu’ contestuale, attivabile con il penultimo tasto a destra della barra spaziatrice, (che generalmente simula il tasto destro del mouse) ,quindi d’ora in avanti queste due modalità le considererò equivalenti.
Ho necessità di scrivere codice e di programmare in pl-sql e,con shiftf+F7,aperto il menu’ di navigazione database,una volta posizionata nell’elenco dei packages,con la freccia destra si sprofonda al livello delle procedures contenute nel package e,aprendo il menu’ contestuale si apre il codice sorgente con l’opzione “Go To source”.
Ho trovato che NVDA con DBEAVER è molto preciso nelle funzioni di videoscrittura ed editazione di codice.
Una volta terminata la scrittura dello script di una procedura,va mandata al compilatore, per la verifica della correttezza della sintassi.Con DBEAVER ciò si può fare in 3 diverse modalità:
– digitando i tasti shift + f10 e poi scorrendo con la freccia in basso fino a trovare l’opzione “compile”;
– con il tasto applicazioni o menù di contesto e poi scorrendo con la freccia in basso fino a trovare l’opzione “compile;
– con la combinazione ctrl + f9.
a questo punto,se la compilazione è andata bene,allora la sintesi vocale dirà “Done successfully” e bisogna dare invio altrimenti se ci sono errori,si aprirà una finestra in cui ci si potrà spostare tra il pulsante “ok” e il pulsante “details”, ma purtroppo il tipo di errore si apre in una finestra non raggiungibile tramite tasti,ma solo tramite la modalità navigazione di NVDA.
Importantissimo: la compilazione non salva le modifiche,come invece avviene con sql-navigator,quindi è necessario attivare il menu’ di contesto (penultimo tasto a destra della barra spaziatrice) e scegliere l’opzione save; non è finita,se la versione sul DB è diversa,si apre una finestra in cui vi sono i pulsanti “copy” e “persist changes”, e per salvare le modifiche sul db bisogna selezionare il tasto “persist changes”.A questo punto se la compilazione è ok sentiremo nuovamente “done successfully” e la nuova versione della procedura è presente sul DB ed è possibile mandarla in esecuzione.
Come ho già detto non si riesce a posizionarsi sulla finestra degli errori sql,ma fortunatamente il cursore resta posizionato sull’istruzione contenente l’errore e dunque con un po’ di esperienza la cosa si risolve.
Può anche succedere che,nonostante la compilazione sia ok, NVDA non reciti “done successfully”,ma lo farà comunque al momento di salvarla nel DB selezionando “persist changes”.
Per lanciare l’esecuzione bisogna selezionare l’opzione “Execute” raggiungibile dal menù di contesto,che si apre con shift + f10 (oppure tasto applicazioni,quindi si attiva l’apertura di altre 4 tipologie di esecuzioni e va selezionato “execute script’ (oppure ctrl+ invio) e si aprirà uno script in cui è impostata una istruzione di CALL alla procedura,ma che non funziona per il linguaggio pl-sql;dunque è necessario preparare un piccolo script con una declare , la o le variabili in input e/o in output, la chiamata alla procedura tra un begin e un end; a questo punto l’esecuzione si attiva lanciando questo piccolo script,con la combinazione di tasti ctrl+ invio.
Consiglio di salvarlo e di utilizzarlo così per i lanci successivi.
E’ possibile controllare le statistiche dell’esecuzione tramite ctrl+6 (2 volte) e si leggerà l’orario di fine esecuzione.
Qualche cenno ora sulla mia esperienza nella consultazione delle tables del database, oppure nella scrittura di query di tabelle.
Aprendo il Navigatore di Database, con ctrl+F7,posizionandosi sulla table che ci interessa, è possibile visualizzare tutti i dati della tabella con l’opzione Wiew data in sql console Attivabile da shift + f10 o dal tasto applicazioni che attiva il menu’ contestuale.
Si aprirà così una query sql con la
Select di tutti i campi della tabella,che può essere modificata,rimandata in esecuzione e consultarne il risultato, o semplicemente che può essere copiata tutta o in parte su uno script.
Come già descritto da Alessandro,il risultato della query è visibile con la combinazione ctrl+6 (2 volte) e la visualizzazione di questi dipenderà da come abbiamo settato l’opzione “layout data” sempre dal menu’ di contesto.
Ringrazio Alessandro per il suggerimento del prodotto DBEAVER,che trovo molto utile e accessibile,pur dovendolo esplorare ancora molto per esserne padrona!
In conclusione
È molto importante e prezioso avere il punto di vista di chi usa questi strumenti per lavoro, sono argomenti di nicchia nel mondo dei non vedenti, ma lo scopo di questo blog è quello di diffonderli e condividere con tutti queste conoscenze specifiche. Tutto ciò viene fatto per creare consapevolezza nelle persone non vedenti e nelle aziende che potrebbero assumerli. Amo dare spazio e voce ad altri professionisti non vedenti, man mano che ne incontro lungo il mio cammino professionale. Questo blog nasce anche con questa mission.