Как я могу вызвать Oracle хранимую процедуру из SAS для передачи значений и возвращаемых значений. У меня есть SAS/ACCESS и работает SAS 9.3Вызов хранимой процедуры Oracle из SAS
Благодаря Dan
Как я могу вызвать Oracle хранимую процедуру из SAS для передачи значений и возвращаемых значений. У меня есть SAS/ACCESS и работает SAS 9.3Вызов хранимой процедуры Oracle из SAS
Благодаря Dan
Это должно работать:
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;
Это должно работать нормально в SAS 9.2 и выше, с использованием ODBC транзитной пересылки.
Вот аналогичное обсуждение с соответствующими ссылками:
http://communities.sas.com/message/114296#114296
Постараюсь вернуться когда-нибудь предположить, связанную статью в этом ответе ...
Выполнение сквозной хранимой процедуры не поддерживает выходные параметры. Но если вам нужен только один выходной параметр, обходным путем является использование функции и запрос «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;
Проверьте, может ли быть запущена программа SQL Passthrough? – stevepastelan