2012-02-13 224 views

回答

2

这应该工作:

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; 
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;