【问题标题】:how to get the return codes from SAS pass-through SQL to Teradata ?如何获取从 SAS 直通 SQL 到 Teradata 的返回码?
【发布时间】:2015-04-28 23:38:51
【问题描述】:

在 SAS 9.2 中,如何从显式传递 sql 到 teradata 获取返回代码/错误消息?打印在日志或输出或其他东西中。

我已经得到了一个可以正常工作的小查询,但是在处理更复杂的查询时遇到了一些麻烦。使用错误消息进行调试会容易得多。 尝试了查询 db2 时使用的 sqlxmsg 和 sqlxrc,但是这些当然不起作用……还没有找到任何关于此的文档。 (我对 Teradata 很陌生)

【问题讨论】:

  • 我认为 sqlxmsg 和 sqlxrc 应该与 Teradata 一起使用。你用了什么代码?
  • 文档并没有说它们不起作用,但谁知道呢。 9.2 对 Teradata 的支持还比较早; 9.4 有更强的支持,所以可能有些东西没有在那里实现。如果您在这里没有得到好的答案,我会在 community.sas.com 上询问,或者甚至(如果您有点赶时间)提交一张 SAS 支持的票。
  • SASTRACE support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/… 在这种情况下有帮助吗?
  • 我以为 SASTRACE 只是向您展示使用隐式传递而不是显式传递时实际发送的语句?
  • 查看答案,我知道我以前在显式传递中使用过它!

标签: sas teradata proc-sql pass-through


【解决方案1】:

使用 SASTRACE 选项从 Teradata 恢复调试消息。

http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a000433982.htm

本文档支持并展示了一个在显式传递 SQL 中使用的示例:

https://support.sas.com/resources/papers/TroubleshootingSASandTeradataQueryPerformanceProblems.pdf

注意如果您在大型数据集上使用此选项,请谨慎选择选项,否则您将创建大量日志

【讨论】:

    【解决方案2】:

    这是代码,现在在关闭并重新启动 SAS 后它工作正常! 似乎我有一些进程挂在某个地方......

    rsubmit sashost;
    proc sql;
    connect to teradata (user=&terauser password=&terapass server=&teraserv mode=teradata); 
    create table test as
    select * from connection to teradata
    (select x
    from y.z
    where c);
    %put &sqlxmsg;
    %put &sqlxrc;
    disconnect from teradata;
    quit;
    proc download data=test out=locallib.test; run;
    endrsubmit;
    

    【讨论】:

    • &sqlxmsg&sqlxrc 在这种情况下有效吗?毕竟问题是关于返回码,而不是实际的表创建。
    猜你喜欢
    • 2020-02-21
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2015-09-26
    • 2013-01-25
    相关资源
    最近更新 更多