我知道有一种方法可以通过SAS存储流程Web应用程序调用存储进程,但我想知道是否有一种方法可以直接调用存储的进程服务器。
目标是调用传递数据的存储进程(通过_webout文件?)到python,尽可能的高效。因此,它可以通过跳过SAS应用程序来减少处理时间。
我认为使用SASPy是不可能的(似乎正在使用Workspace服务器)。
致以问候。
发布于 2018-05-23 15:40:39
有两种方法可以在代码中调用存储的进程服务器,使用Java库和.NET库。
就我个人而言,我使用.NET创建了一个命令行应用程序,该应用程序调用存储的进程并将流返回给STDOUT。从Python中,您只需阅读输出。您可以从Java复制这一点(但是.NET库更容易使用)。
另一种方法是使用一个库,它允许您根据Python的风格调用Java (如果您使用的是.NET ),并以这种方式集成它。
最后,对于大多数用例来说,使用STP Web应用程序就更容易了。您可以一次登录,存储授权令牌,并将其传回,从而消除每个调用重新登录的开销。
发布于 2020-06-02 22:57:09
最好的方法是安装saspy、配置sascfg_personal.py文件、打开会话并运行存储进程。就像这样:
import saspy
sas = saspy.SASsession(cfgname='winiomwin')
stp = 'proc stp program="/Shared Data/Stored_Processes/your_SP"; run;'
sas_output = sas.submit(stp)
sas_log = sas_output['LOG']https://stackoverflow.com/questions/50492155
复制相似问题