2012-02-13 1 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; 
1

Это должно работать нормально в SAS 9.2 и выше, с использованием ODBC транзитной пересылки.

Вот аналогичное обсуждение с соответствующими ссылками:

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

Постараюсь вернуться когда-нибудь предположить, связанную статью в этом ответе ...

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;