java - 我怎样才能在 SAS 9.4 中获得像 OLAPDataSetInterface 这样的对象

标签 java sas

我需要得到一个类似 OLAPDataSetInterface 的对象,但不使用 OLAP 服务器。

我曾经使用过:

//Connect to OLAP server
OLAPDataSetInterface cube = objectInSession.getOlapDataSet();
//Get the info
cube.execute("query_mdx");

我尝试使用 DataSetInterface 但不起作用:

com.sas.sasserver.dataset.DataSetInterface ds = null;
//Getting my temporary table
ds.setDataSet("WORK.my_table");

然后我做了以下事情:

//BBDD connector

WorkspaceConnector connector = factory.getWorkspaceConnector(0L);
IWorkspace workspace = connector.getWorkspace();
ILanguageService ls = workspace.LanguageService();

//This creates my temporary table in the library WORK (WORK.my_table)
String stmt = "%include \"/saswork/MY_PROGRAM.sas\" ;";
ls.Submit(stmt);

com.sas.sasserver.dataset.DataSetInterface ds = null;
//ds = ...

最佳答案

这是在 C# 中,但应该有助于理解数据集检索过程。我不使用 SAS OLAP,所以无法告诉您如何处理该项目。

    public string GetDataSet(string sasDirectory, string dataset)
    {
        Common.Log($"Getting SAS dataset ({dataset}) at {sasDirectory}");
        DataTable dt = new DataTable(dataset);
        try
        {
            using (var cn = new OleDbConnection($@"Provider=SAS.LocalProvider; Data Source={sasDirectory}"))
            {
                cn.Open();
                var cmd = cn.CreateCommand();
                cmd.CommandType = CommandType.TableDirect;
                cmd.CommandText = dataset;
                var sas = new OleDbDataAdapter(cmd);
                var ds = new System.Data.DataSet();
                sas.Fill(ds, dataset);
                dt = ds.Tables[0];
                Common.Log($"SAS dataset loaded.");
            }
        }
        catch (Exception ex)
        {
            string errMessage = "Unable to get the SAS dataset. Library: " + sasDirectory + ", DataSet: " + dataset + ", " +
                ex.TargetSite.Name;
            Common.Log($"SAS Error in {MethodBase.GetCurrentMethod().Name}", MessageType.Error, ex);
        }
        return dt.ToCsv('\t');
    }

关于java - 我怎样才能在 SAS 9.4 中获得像 OLAPDataSetInterface 这样的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075168/

相关文章:

java - 确定 JTextField 是否包含整数

java - 在 Spring 的配置类中获取经过身份验证的用户

sas - proc 逻辑和其他回归中的多项式项

sas - 在 SAS 中,分配的变量在每次迭代之前总是设置为缺失吗?

string - 根据 sas 中另一个字符变量的值重新编码字符变量中的值

SAS - 将行中的多个变量转置为列

java - 用户从 JTable 中删除一行

java - 启动@Async : what is best way to create 1000 no of threads using spring

java - 如何在 JNA 中映射枚举

RJDBC::dbConnect 期间的 Java 异常错误:如何静默忽略?