您是否在使用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。 順便說一句,不要試圖與紙上列出的聯繫人聯繫 - 他們是古老的。
在回答您進一步聲明:
我想你想的方式,使用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, 無論是在甲骨文交織插入每個結果集 或迭代結果集的迭代產生SQL插入的文本塊做VALUES 你然後提交到Oracle JDBC。
它只是一個JSP,只要你知道如何工作一個JSP並且願意理解我寫的文本塊標記庫是如何工作的。您會看到,我使用這種技術允許JSP運行SAS批處理模式下運行的SAS宏,但不會對宏進行任何更改。不僅如此,標籤庫允許我將java和jsp變量分辨率嵌入到宏或sas/sql塊中。
我編寫了這個塊文本標籤庫,因爲我曾經在Perl(2003之前)中進行過這樣的操作,其中Perl(和其他腳本語言)允許您爲代碼中的連續塊文本分配變量的腳本。
說明書上使用標記庫:
http://h2g2java.blessedgeek.com/2009/07/jsp-text-custom-tag.html
http://h2g2java.blessedgeek.com/2009/07/referencing-text-jsp-custom-tag-defined.html
謝謝,最後一個答案! 我想用SAS代碼本身來更新Oracle表,而不是Java。據我所知,我沒有使用SAS/Access。數據集創建在SAS代碼中,我需要從SAS代碼本身更新Oracle表... – ChamaraG 2010-09-04 01:30:25
除了使用SAS/Access將sas會話連接到oracle或任何rdbms之外,我不知道任何其他方式。除非通過生成輸出文件,然後觸發外部進程將該文件插入到Oracle中。 而SQL passthro是SAS/Access功能。 – 2010-09-05 05:23:06