mirror of
https://github.com/sasjs/core.git
synced 2025-12-10 22:14:35 +00:00
41 lines
913 B
SAS
41 lines
913 B
SAS
/**
|
|
@file
|
|
@brief Locktable DDL
|
|
@details For "locking" tables prior to multipass loads. Used by
|
|
mp_lockanytable.sas
|
|
|
|
**/
|
|
|
|
|
|
%macro mddl_dc_locktable(libds=WORK.LOCKTABLE);
|
|
|
|
%local nn lib;
|
|
%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;
|
|
%let nn=not null;
|
|
%end;
|
|
%else %let nn=;
|
|
|
|
proc sql;
|
|
create table &libds(
|
|
lock_lib char(8),
|
|
lock_ds char(32),
|
|
lock_status_cd char(10) &nn,
|
|
lock_user_nm char(100) &nn ,
|
|
lock_ref char(200),
|
|
lock_pid char(10),
|
|
lock_start_dttm num format=E8601DT26.6,
|
|
lock_end_dttm num format=E8601DT26.6
|
|
);
|
|
|
|
%let libds=%upcase(&libds);
|
|
%if %index(&libds,.)=0 %then %let lib=WORK;
|
|
%else %let lib=%scan(&libds,1,.);
|
|
|
|
proc datasets lib=&lib noprint;
|
|
modify %scan(&libds,-1,.);
|
|
index create
|
|
pk_mp_lockanytable=(lock_lib lock_ds)
|
|
/nomiss unique;
|
|
quit;
|
|
|
|
%mend mddl_dc_locktable; |