sql - 表锁不可用...在数据集(表)释放之前有什么方法可以保持(等待)程序?
问题描述
是否可以保留(等待)通过调度程序运行的程序,直到特定表或数据集被释放?由于某些表锁定,我的调度程序程序失败。我无法更改我的 SAS 控制台运行时间。我只是想知道是否有任何代码可以保持正在运行的程序直到某个特定的表发布并且程序不断刷新直到表被解锁
我尝试使用以下代码,但未能继续。
PROC SQL;
INSERT INTO EMPLOYEE.VIKAS_DETAILS (EMPID,AGE, SEX, STATE, COUNTRY)
SELECT DISTINCT EMPID, AGE, SEX, STATE, COUNTRY FROM WORK.FINAL_EMPLOYEE;
QUIT;
错误:
EMPLOYEE.VIKAS.DATA 没有可用的锁。
我收到此错误是因为我的其他程序之一也将相同的变量插入到上述数据集中但具有不同的数据。
解决方案
取决于 SAS 的版本和定义EMPLOYEE
libref 的 libname 语句。但是,您可以尝试将FILELOCKWAIT=
选项添加到 libname
libname EMPLOYEE … FILELOCKWAIT=300; /* wait up to 5 minutes when a member is locked from use */
FILELOCKWAIT=n
指定 SAS 等待锁定文件可供另一个进程使用的秒数。如果锁定的文件在 n 指定的秒数之前被释放,则 SAS 为当前进程锁定文件并继续。如果在达到秒数时文件仍处于锁定状态,则 SAS 将“锁定文件”错误写入日志并且 DATA 步骤失败。
推荐阅读
- flutter - Flutter中基于背景亮度的文本颜色,没有不透明度
- javascript - 使用 AJAX POST 部分返回剃须刀页面
- r - 在 R 中的小标题中对非 NULL 的列表列应用函数
- postfix-mta - 如何从后缀过滤器调试/记录?
- angular - 在 Angular 组件中添加可选的多个属性
- html - 使用外部 vbs 脚本更新 HTA 中 div 的内容
- c# - 我需要一个向量在一个特定的地方
- python-3.x - 清除熊猫数据框列中不一致的日期格式
- reactjs - 如何让 JSX 中定义的 HTML 元素接受属性?
- javascript - 如何在本机 NodeJS 中进行 ICMP ping