SQL400 - Modificare il valore di default di un campo di Database

Il . Inserito in Informatica. Visite: 752

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

Il DB2/400 è sicuramente uno dei più performanti e affidabili File System che io abbia mai utilizzato in questi trent'anni di attività di consulente informatico.

Più in generale, il sistema AS/400, oggi chiamato iSeries, è senza ombra di dubbio il Mainframe più sicuro e affidabile che ci sia in circolazione, immune dalla concorrenza dei vari Oracle, Windows, Unix, Linux e via dicendo.

Forse cede un po' il passo per quanto riguarda l'aspetto grafico ma da anni sono in circolazione svariati tool che colmano questo grande gap.

Una delle cose un po' "fastidiose" che, di norma, ci impone l'architettura di iSeries è il fatto di dover ricompilare tutti i programmi che accedono ad un determinato Database nel momento in cui decidiamo di modificarne la struttura, aggiungere o togliere un campo, cambiarne la dimensione o la tipologia.

Fino a qualche tempo fa, era una cosa di routine ma con l'avvento dell'SQL anche su piattaforma iSeries, questo passaggio può essere ignorato, sostituito da un intervento decisamente più indolore e immediato.

Mi sono trovato, infatti, a dover cambiare il valore di default del campo CGAPNT del file di database ITCG00F che era impostato = "Y".

Cosa significa? Significa che, in fase di aggiunta di un record nel file ITCG00F, se non veniva espressamente indicato il valore da attribuire a CGAPNT, il suo valore veniva automaticamente impostato a "Y" dall'OS/400.

Se da un certo punto di vista questa impostazione può sembrare utile, e in certi casi lo è, dall'altro può creare abbastanza danni, dipende ovviamente dal tipo di campo del file e da come esso viene utilizzato nell'organizzazione software dell'azienda. 

Per fortuna però, l'SQL mi è venuta in soccorso.

Tramite il comando SQL ALTER infatti, è possibile reimpostare il valore di default di questo campo in modo che, se non espressamente specificato, venga lasciato vuoto. 

Il comando completo è il seguente: 

ALTER TABLE R2LIBP/ITCG00F ALTER COLUMN CGAPNT SET 
 NOT NULL WITH DEFAULT ' '                           

Nell'esempio sopra, il valore di default del campo CGAPNT è stato reimpostato a Blank. 

Se invece vogliamo impostare una regola che "obblighi" la compilazione di CGAPNT durante le istruzioni di aggiornamento, occorre eliminare l'impostazione relativa al default, come nell'esempio sotto:

ALTER TABLE R2LIBP/ITCG00F ALTER COLUMN CGAPNT DROP DEFAULT 

In questo esempio, il campo CGAPNT dovrà necessariamente essere impostato (con un valore o anche con un blank) altrimenti il programma andrà in errore di "Null values not allowed in column or variable CGAPNT".

 

 

 

 

Autore
Davide Galloni
Author: Davide GalloniEmail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
"La vita è l'insegnante più severa, prima ti fa l'esame e poi ti spiega la lezione"

Tags: sql iseries as400 alter table default

Aggiungi commento


Codice di sicurezza
Aggiorna

Link Sponsorizzati.