Categories: 02a - SQL

Esplorare le aree dati con SQL

I suggerimenti di MarkOne – n. 6

Nel numeroso elenco di funzioni e viste della famiglia DB2 for i Service, ne esistono alcune che consentono di gestire gli oggetti aree dati (*DTAARA) tramite istruzioni SQL.

Elencare le aree dati

Per ottenere un elenco delle aree dati presenti in un libreria si può usare la funzione di tabella OBJECT_STATISTICS:

select OBJNAME "Nome", OBJTEXT "Descrizione", OBJOWNER "Proprietario", timestamp(OBJCREATED, 0) "Data/ora creazione", timestamp(CHANGE_TIMESTAMP, 0) "Data/ora ult.mod.", timestamp(LAST_USED_TIMESTAMP, 0) "Data/ora ult.utilizzo", DAYS_USED_COUNT "GG util."
   from table(QSYS2/OBJECT_STATISTICS('QUSRSYS', '*DTAARA'))
   order by OBJNAME;

Esplorare il contenuto delle aree dati

La vista DATA_AREA_INFO e la funzione di tabella DATA_AREA_INFO ci consentono di reperire il contenuto di un’area dati. Ovvero un metodo equivalente al comando CL RTVDTAARA e alla API QWCRDTAA.

Reperire il contenuto di una singola area dati:

select rtrim(DATA_AREA_VALUE) "Valore", DATA_AREA_TYPE "Tipo", LENGTH "Lungh.", DECIMAL_POSITIONS "Dec."
   from table(QSYS2/DATA_AREA_INFO(DATA_AREA_LIBRARY => '*LIBL', DATA_AREA_NAME => 'QSS1MRI'));

Reperire il contenuto di un elenco di aree dati:

select DATA_AREA_NAME "Nome", rtrim(DATA_AREA_VALUE) "Valore", DATA_AREA_TYPE "Tipo", LENGTH "Lungh.", DECIMAL_POSITIONS "Dec.", TEXT_DESCRIPTION "Descrizione"
   from DATA_AREA_INFO
   where DATA_AREA_LIBRARY = 'QUSRSYS' and DATA_AREA_NAME in('QINZPCSDA', 'QIZAVRM', 'QRCLSTG', 'QSMTPQ', 'QSS1MRI', 'QTMSCCHG')
   order by DATA_AREA_NAME;

La funzione di tabella DATA_AREA_INFO consente anche di reperire il valore della local data area (*LDA). Per esempio proviamo a modificare il contenuto della *LDA con:

call qcmdexc('CHGDTAARA DTAARA(*LDA (10 5)) VALUE(''12345'')');

E poi visualizziamo il contenuto con:

select rtrim(DATA_AREA_VALUE) "Valore"
   from table(QSYS2/DATA_AREA_INFO(DATA_AREA_NAME => '*LDA'));

Quando sono stati eseguiti gli ultimi salvataggi importanti?

Esistono alcune aree dati che ci danno informazioni sulla data/ora dell’ultima esecuzione di salvataggi importanti eseguiti su IBM i (SAVSYS, SAVCFG…). Tramite DB2 for i service è facile consultare lo stato con una semplice istruzione SQL:

select OBJNAME "Nome", OBJTEXT "Descrizione", timestamp(SAVE_TIMESTAMP, 0) "Data/ora salvataggio"
   from table(QSYS2/OBJECT_STATISTICS('QSYS', '*DTAARA'))
   where OBJNAME like 'QSAV%'
   order by OBJNAME;
Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

Recent Posts

VsCode Extension: Bob Cozzi’s RPG IV to RPG Free Conversion

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…

11 mesi ago

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…

11 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

11 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

11 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

1 anno ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

1 anno ago