如何从SAS调用Oracle存储过程来传递值并返回值。我有SAS / ACCESS并运行SAS 9.3
由于 丹
答案 0 :(得分:2)
这应该有效:
proc sql;
connect to oracle (user="oracleUserName" password="pass" path="serverPath" CONNECTION=GLOBAL CONNECTION_GROUP = SASAML);
execute( execute MyPackage.MyProcedure(¶m1, ¶m2) ) by oracle;
/* param1 and param2 are macro variables here */
disconnect from oracle;
quit;
答案 1 :(得分:1)
使用ODBC passthrough在SAS 9.2及更高版本中应该可以正常工作。
以下是与相关链接的类似讨论:
http://communities.sas.com/message/114296#114296
我会试着回过头来猜测这个答案中的链接文章......
答案 2 :(得分:0)
传递存储过程执行不支持输出参数。但是,如果只需要一个输出参数,则解决方法是使用函数和“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;