Reserviert ein Objekt (und alle seine untergeordneten Elemente) zur Aktualisierung nur für die aktuelle Client-Sitzung. Verhindert, dass ein Objekt (und alle seine übergeordneten Elemente) von einer anderen Sitzung exklusiv ausgecheckt wird, wenn checkOutType=Shared ist. Diese Aktion ist Teil eines Transaktionsmodells zur Verwaltung von Zugriffskontrollen, das es ermöglicht, Änderungen in der Vorschau anzuzeigen, bevor sie übernommen werden.
| Parameter | Beschreibung |
|---|---|
| checkoutParent | Gibt an, ob das übergeordnete Objekt ausgecheckt werden soll, wenn das angegebene Objekt nicht existiert. Standard ist FALSE. |
| checkOutType | Gibt die Art des Auscheckens an. Standardmäßig ist ein Auschecken exklusiv ('EXCLUSIVE'), sodass nur die aktuelle Sitzung das angegebene Objekt (und seine untergeordneten Elemente) aktualisieren kann. Wenn Sie 'SHARED' angeben, sperrt das Auschecken das Objekt nicht, sondern verhindert lediglich, dass andere Sitzungen das Objekt (und seine übergeordneten Elemente) exklusiv sperren. |
| ObjectSelector | Gibt den Typ des Objekts an, das Sie auschecken möchten. Der Wert, den Sie für den Parameter objType angeben, bestimmt die anderen anwendbaren Parameter. |
| objType | Ein Teil von ObjectSelector, der den Objekttyp angibt. Mögliche Werte sind 'ACTION', 'ACTIONSET', 'CASLIB', 'COLUMN', 'TABLE'. |
| action | Wird verwendet, wenn objType='ACTION' ist. Gibt den Namen der Aktion an. |
| actionSet | Wird verwendet, wenn objType='ACTION' oder 'ACTIONSET' ist. Gibt den Namen des Aktionssatzes an. |
| caslib | Wird verwendet, wenn objType='CASLIB', 'TABLE' oder 'COLUMN' ist. Gibt den Namen der Caslib an. |
| table | Wird verwendet, wenn objType='TABLE' oder 'COLUMN' ist. Gibt den Namen der Tabelle an. |
| column | Wird verwendet, wenn objType='COLUMN' ist. Gibt den Namen der Spalte an. |
Dieser Code erstellt eine Caslib namens 'mycas' und eine Tabelle 'cars' darin, um die Beispiele für 'checkOutObject' zu ermöglichen.
| 1 | |
| 2 | PROC CAS; |
| 3 | caslib mycas path='/tmp/mycas' dataSource={srcType='path'}; |
| 4 | |
| 5 | DATA mycas.cars; |
| 6 | SET sashelp.cars; |
| 7 | |
| 8 | RUN; |
| 9 | |
| 10 | QUIT; |
| 11 |
Dieses Beispiel startet eine Transaktion und checkt die Tabelle 'mycas.cars' exklusiv aus. Dies sperrt die Tabelle für Änderungen durch andere Sitzungen, bis die Transaktion abgeschlossen ist.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.startTransaction; |
| 4 | |
| 5 | RUN; |
| 6 | ACCESSCONTROL.checkOutObject / objectSelector={objType='TABLE', caslib='mycas', TABLE='cars'}; |
| 7 | |
| 8 | RUN; |
| 9 | |
| 10 | QUIT; |
| 11 |
Dieses Beispiel zeigt, wie man eine 'SHARED' (gemeinsame) Sperre für eine gesamte Caslib setzt. Dies verhindert, dass andere Sitzungen eine exklusive Sperre für die Caslib 'mycas' oder eines ihrer untergeordneten Elemente (wie Tabellen) erhalten, während die aktuelle Sitzung ihre Änderungen vorbereitet.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.startTransaction; |
| 4 | |
| 5 | RUN; |
| 6 | ACCESSCONTROL.checkOutObject / checkOutType='SHARED' objectSelector={objType='CASLIB', caslib='mycas'}; |
| 7 | |
| 8 | RUN; |
| 9 | |
| 10 | QUIT; |
| 11 |
Dieses Beispiel versucht, eine nicht existierende Tabelle 'nonexistent' auszuchecken, aber mit der Option 'checkoutParent=TRUE'. Anstatt einen Fehler zu erzeugen, checkt CAS die übergeordnete Caslib 'mycas' aus, was nützlich ist, wenn man beabsichtigt, das Objekt innerhalb der Transaktion zu erstellen.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.startTransaction; |
| 4 | |
| 5 | RUN; |
| 6 | ACCESSCONTROL.checkOutObject / checkoutParent=TRUE objectSelector={objType='TABLE', caslib='mycas', TABLE='nonexistent'}; |
| 7 | |
| 8 | RUN; |
| 9 | |
| 10 | QUIT; |
| 11 |
Eine Bank muss die 'Blacklist'-Tabelle für Geldwäscheverdacht (AML) aktualisieren. Während dieses Updates darf kein anderer Prozess oder Analyst Schreibzugriff auf diese Tabelle...
Ein Data-Warehouse-Team führt Validierungstests auf einer gesamten Caslib durch, die historische Verkaufsdaten enthält. Sie wollen verhindern, dass jemand während der Prüfung ei...
Ein MLOps-Prozess versucht, eine neue Scoring-Tabelle für ein Kreditrisikomodell auszuchecken, um sie zu aktualisieren. Wenn die Tabelle noch nicht existiert (erster Lauf), muss...