【问题标题】:Calling Oracle Stored Procedure from SAS从 SAS 调用 Oracle 存储过程
【发布时间】:2013-10-23 05:33:11
【问题描述】:

如何从 SAS 调用 Oracle 存储过程来传递值和返回值。我有 SAS/ACCESS 并运行 SAS 9.3

谢谢 丹

【问题讨论】:

  • 看看 SQL 直通工具吧?

标签: sas


【解决方案1】:

这应该可行:

proc sql;

connect to oracle (user="oracleUserName" password="pass" path="serverPath" CONNECTION=GLOBAL CONNECTION_GROUP = SASAML);

execute( execute MyPackage.MyProcedure(&param1, &param2) ) by oracle;

/* param1 and param2 are macro variables here */

disconnect from oracle;

quit;

【讨论】:

    【解决方案2】:

    这在 SAS 9.2 及更高版本中使用 ODBC 直通应该可以正常工作。

    以下是相关链接的类似讨论:

    http://communities.sas.com/message/114296#114296

    我会尝试并在某个时候回来推测此答案中的链接文章...

    【讨论】:

      【解决方案3】:

      传递存储过程执行不支持输出参数。但如果您只需要一个输出参数,解决方法是使用函数和“SELECT FROM dual”查询。这是示例(它使用一个从宏变量传入的输入参数)。

      %let a =  'ddd'; 
      proc sql;
          connect to oracle as ora2 (user=xxx password=xxx path="xxx");
          select * from connection to ora2 (
          SELECT test_fun(p_a => &a.) FROM dual
          );
          disconnect from ora2;
      run;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-25
        • 2015-05-22
        • 2012-01-27
        • 2017-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多