Archives par mot-clé : DELETE

CICS – DELETE

La commande DELETE est utilisée pour supprimer un enregistrement d’un fichier VSAM – KSDS et RRDS.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande DELETE.

EXEC CICS DELETE
   FILE('filename')
   RIDFLD(data-area) [RBA|RRN]
   KEYLENGTH(data-value)
   [GENERIC|NUMERIC(rec-number)]
END-EXEC.

Les enregistrements des fichiers VSAM KSDS et RRDS peuvent être supprimés, mais pas des fichiers VSAM ESDS.

L’option NUMREC renverra le nombre d’enregistrements supprimés lors d’une suppression GENERIC.

KEYLENGTH doit être spécifié pour une suppression GENERIC.


La commande DELETE peut être émise pour supprimer des enregistrements d’un ensemble de données de deux manières :

  1. Émis après une commande READ avec l’option UPDATE pour supprimer l’enregistrement lu.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    END-EXEC
  2. Émis avec l’option RIDFLD lorsqu’il n’y a pas d’option READ avec UPDATE préalable. Cela supprimera l’enregistrement dont la clé correspond au RIDFLD.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    RIDFLD(zone-donnee)
    KEYLENGTH(valeur-donnee)
    END-EXEC

Voyons les paramètres utilisés dans la commande DELETE.

  • FILE(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement. Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on souhaite supprimer.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD


Exemple:

Voyons un exemple de programme CICS pour la commande DELETE.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMF.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REC-LEN         PIC S9(4) COMP.
01 WS-KEY-LEN         PIC S9(4) COMP.
01 WS-REC-KEY         PIC 9(6).
01 WS-REC-DATA        PIC X(80).
01 WS-DEL-REC         PIC S9(4).
PROCEDURE DIVISION.
        MOVE '502258'       TO WS-REC-KEY.
        MOVE 6              TO WS-KEY-LEN.

        EXEC CICS DELETE
           FILE('STDLST')
           RIDFLD(WS-REC-KEY)
           KEYLENGTH(WS-KEY-LEN)
           GENERIC
           NUMREC(WS-DEL-REC)
        END-EXEC.

La description:

Cet exemple pour supprimer plus d’un enregistrement. Cela peut être fait en utilisant l’option Générique dans la commande Supprimer, où tous les enregistrements qui satisfont aux critères génériques seront supprimés. NUMREC contiendra le nombre d’enregistrements supprimés. Le champ mentionné ici doit être un demi-mot binaire (S9(4) comp).


Supprimer les conditions d’exception de la commande :

ExceptionLa description
DISABLEDUn fichier est désactivé
NOTOPENLe fichier n’est pas ouvert.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(nomfile).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
FILENOTFOUNDLe nom de fichier n’est pas disponible dans FCT.
INVREQCommande de suppression exécutée sans commande READ préalable avec l’option UPDATE.

Instruction SQL DELETE 

L’instruction DELETE supprime les lignes d’une table.

Syntaxe:

DELETE FROM nom_table WHERE condition ;

Remarque : S’il n’y a pas de clause « where » dans l’instruction Delete, SQL supprimera toutes les données de la table. Vous devez donc être très prudent lors de l’exécution de l’instruction Delete et vous assurer qu’il existe une clause Where.

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Produit” de la base de données DB2 :

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006Stylo7.451074,50

Exemple 1 : supprimer un enregistrement

Supprimez ‘ID_Produit’ 7003 de la table ‘Produit’.

DELETE FROM Produit WHERE ID_Product = ‘7003’;
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006Stylo7.451074,50

Exemple 2 : Supprimer tous les enregistrements

Supprimez tous les départements de la table ‘Produit’ (c’est-à-dire videz la table).

L’instruction SQL suivante supprime toutes les lignes de la table “Produit”, sans supprimer la table.

DELETE FROM Produit;
Résultat:

Tableau vide

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale