Réserve un objet (et tous ses enfants) pour une mise à jour exclusive par la session client actuelle. Empêche un objet (et tous ses parents) d'être extrait de manière exclusive par une autre session si checkOutType=Shared.
| Paramètre | Description |
|---|---|
| checkoutParent | Indique s'il faut extraire l'objet parent si l'objet spécifié n'existe pas. La valeur par défaut est FALSE. |
| checkOutType | Spécifie le type d'extraction. Par défaut, une extraction est exclusive, donc seule la session actuelle peut mettre à jour l'objet spécifié (et ses enfants). Si vous spécifiez 'SHARED', l'extraction ne verrouille pas l'objet ; elle empêche simplement d'autres sessions de verrouiller l'objet (et ses parents). |
| ObjectSelector | Spécifie le type d'objet que vous souhaitez extraire. La valeur que vous spécifiez pour le paramètre objType détermine les autres paramètres qui s'appliquent. |
| action | Spécifie le nom de l'action (utilisé avec objType='ACTION'). |
| actionSet | Spécifie le nom du jeu d'actions (utilisé avec objType='ACTION' ou 'ACTIONSET'). |
| caslib | Spécifie le nom de la caslib (utilisé avec objType='CASLIB', 'TABLE' ou 'COLUMN'). |
| column | Spécifie le nom de la colonne (utilisé avec objType='COLUMN'). |
| table | Spécifie le nom de la table (utilisé avec objType='TABLE' ou 'COLUMN'). |
Ce bloc de données crée une table simple 'myTable' dans la caslib 'casuser' pour démontrer le verrouillage d'objet. Cette table sera utilisée dans les exemples suivants.
| 1 | |
| 2 | DATA casuser.myTable; |
| 3 | x=1; |
| 4 | y=2; |
| 5 | OUTPUT; |
| 6 | x=3; |
| 7 | y=4; |
| 8 | OUTPUT; |
| 9 | |
| 10 | RUN; |
| 11 |
Cet exemple montre comment verrouiller de manière exclusive la table 'myTable' dans la caslib 'casuser'. Cela empêche toute autre session de la modifier ou d'obtenir un verrou dessus.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.checkOutObject / objectSelector={objType="TABLE", caslib="casuser", TABLE="myTable"}; |
| 4 | |
| 5 | RUN; |
| 6 |
Cet exemple montre comment appliquer un verrouillage partagé sur la caslib 'casuser'. Cela empêche d'autres sessions de la verrouiller de manière exclusive, mais autorise les lectures et d'autres verrous partagés.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.checkOutObject / checkOutType="SHARED" objectSelector={objType="CASLIB", caslib="casuser"}; |
| 4 | |
| 5 | RUN; |
| 6 |
Cet exemple tente de verrouiller la colonne 'y' de 'myTable'. L'option `checkoutParent=TRUE` garantit que si la colonne ne peut être verrouillée individuellement (ou n'existe pas), un verrou sera placé sur son parent, la table 'myTable'.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.checkOutObject / checkoutParent=TRUE objectSelector={objType="COLUMN", caslib="casuser", TABLE="myTable", column="y"}; |
| 4 | |
| 5 | RUN; |
| 6 |
Dans un contexte bancaire, le département de conformité doit effectuer une mise à jour massive des statuts 'Know Your Customer' (KYC). Cette opération est atomique et critique :...
Une enseigne de grande distribution lance ses soldes. De multiples processus (ETL, Reporting, API temps réel) lisent et écrivent dans des tables spécifiques de la librairie 'PRO...
Le département RH souhaite modifier une colonne sensible 'BONUS_ANNUEL' dans la table des employés. Le système tente de verrouiller spécifiquement cette colonne. Cependant, le m...