如何在SAS Enterprise Guide查询构建器中设置Read Uncommitted隔离级别
在SAS Enterprise Guide中设置Read Uncommitted隔离级别
嘿,这个问题我熟!刚好可以利用你提到的「任务和查询代码前运行自定义代码」功能来实现,直接用SAS的SQL选项设置就行,具体操作和代码如下:
具体步骤
- 打开你的查询构建器,找到选项菜单里的「预运行自定义代码」入口(不同EG版本位置可能略有不同,一般在查询属性或任务配置里,找「在生成的代码前运行」的设置项)
- 在输入框中粘贴以下代码:
/* 将当前SQL会话的隔离级别设置为Read Uncommitted */ proc sql; set option read_uncommitted=yes; quit;
额外场景说明
如果你是通过Libref直接连接外部数据库(比如SQL Server、Oracle),也可以在定义库的时候直接指定隔离级别,这样更针对性:
/* 定义Libref时直接启用Read Uncommitted */ libname biz_data odbc dsn='你的数据源名称' schema='业务表所在 schema' read_uncommitted=yes;
小提示
read_uncommitted=yes会让SAS允许读取数据库中未提交的事务数据,完美解决业务操作表因未提交事务导致的查询阻塞或数据获取问题- 这个设置仅对当前会话有效,会话结束后会自动恢复默认级别;如果需要在查询后立刻重置,可以在「代码后运行自定义代码」里加一句
set option read_uncommitted=no; - 要是你操作的是SAS本地数据集,这个设置不会有效果,只针对外部关系型数据库连接生效
内容的提问来源于stack exchange,提问作者RVD5Star
相关产品推荐
相关产品推荐

