时间:2010-07-26 14:30:02

标签: sql oracle sas sql-update proc-sql

1 个答案:

答案 0 :(得分:0)

您是否使用SAS / Access将SAS会话连接到Oracle?

在我的情况下,我使用SAS / Connect JDBC。

SAS / Connect是一种非常简单但有效的策略,用于将SAS基板系统连接到JEE。本质上,sas / connect是sas执行sas -dmr的另一个telnet实现。

我使用sas / connect jdbc将sas数据绘制到我的jsp中,然后使用我们熟悉的java编程技术将数据推送到oracle或sql server。

阅读关于使用sas / connect将sas连接到JEE的古老论文: http://www.nesug.org/proceedings/nesug04/ap/ap02.pdf。 BTW不要试图用纸上列出的联系方式联系我 - 它们很古老。

回应您的进一步陈述

我认为您想要一种使用JDBC将数据插入Oracle的方法? 我的论文向您展示了如何在JSP中嵌入整个SAS宏或SQL或任何文本块,然后提交要通过SAS / Connect运行的文本块。

String datasetname = request.getParameter("datasetname");
String where = request.getParameter("where");

<t:text id="macHello">
%macro hello(datasetname);
 data &datasetname;
 /* code to create your data */
 run;
%mend;

%hello(<%=datasetname%>);
</t:text>

sasConnect.submit(macHello);

<t:text id="SQLgetRecs">
 SELECT *
 FROM <%=datasetname%>
 WHERE <%=where%>
</t:text>

ResultSet mydata =
sasConnJDBC.executeQuery(SQLgetRecs);

然后做任何你需要做的Java, 通过每次迭代Resultset在Oracle中交织插入 或迭代结果集以生成SQL插入VALUES的文本块 然后将其提交给Oracle JDBC。

如果您知道如何使用JSP并且愿意理解我编写的文本块标记库是如何工作的,那么它只是一个JSP。你看,我使用这种技术允许JSP运行已经在生产批处理模式下运行多年的SAS宏,而不需要对宏进行任何更改。不仅如此,标签lib允许我将java和jsp变量分辨率嵌入到宏或sas / sql块中。

我编写了这个块文本标记lib,因为我曾经在Perl(2003之前)中执行过这样的操作,其中Perl(和其他脚本语言)允许您将变量分配给代码中的连续文本块。脚本。

使用标签lib的说明:

http://h2g2java.blessedgeek.com/2009/07/jsp-text-custom-tag.html

http://h2g2java.blessedgeek.com/2009/07/referencing-text-jsp-custom-tag-defined.html