【发布时间】:2020-07-19 18:00:20
【问题描述】:
使用 PROC SQL,可以连接到数据库(在我的例子中是 Db2)并执行插入、删除等操作。
如果一个这样的过程没有导致对目标表的修改,您将在日志中看到这样的注释:
NOTE: No data found/modified.
因此很明显,SAS 在每个此类步骤之后都会对此进行检查。
除了动态解析日志之外,我能否在程序执行期间访问此信息? 也许某种自动宏变量/数据集存储了最后一步的状态?
编辑:我正在使用带有 EXECUTE-Statements 的 Pass Thru SQL。
【问题讨论】:
-
您是否使用显式直通代码(PROC SQL 中的 EXECUTE 语句)?还是使用纯 SAS 代码并通过 libref 引用数据?
-
@Tom 我正在使用 Pass thru 和 EXECUTE 语句。我将编辑我的问题以使其更清楚。
-
在您的不同类型的SQL语句之后,
SQLXRC和SQLXMSG自动宏变量包含哪些值?那些不能提供你想要的吗?如果没有,是否有一些 DB2 命令会告诉您上一个命令的结果? -
@Tom 老实说,我只是不知道这些变量。好消息是,是的,SQLXRC 可以解决问题。当没有找到/修改数据时它等于 100,否则等于 0(当然,除非有不同的错误/警告)。如果您愿意,可以将其发布为答案,我会接受。