Вызов хранимой процедуры Oracle из SAS - PullRequest
2 голосов
/ 13 февраля 2012

Как я могу вызвать хранимый процесс Oracle из SAS для передачи значений и возвращаемых значений.У меня есть SAS / ACCESS и работает SAS 9.3

Спасибо, Дэн

Ответы [ 3 ]

2 голосов
/ 16 февраля 2012

Это должно работать:

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 голос
/ 14 февраля 2012

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

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

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

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

0 голосов
/ 23 октября 2013

Сквозное выполнение хранимой процедуры не поддерживает выходные параметры. Но если вам нужен только один выходной параметр, обходной путь - использовать функцию и запрос «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;
...