1

私は SAS にかなり慣れていないので、これまでに見つけたものよりも優れた解決策があると思われる問題に遭遇しました。

約 10,000 レコードの SAS データ セットのデータを使用して、約 100 万行の Oracle db テーブルを更新する必要があります。

proc sql 内で update ステートメントを使用しましたが、Oracle テーブルの更新に数時間かかります。現在、SAS データセットから Oracle db の一時テーブルにデータをロードし、proc sql pass through execute ステートメントを実行して、一時テーブルからメイン テーブルを更新しています。これにはせいぜい数分しかかかりません。

ただし、これはプログラミングがかなり面倒で、SAS コード内の複数の関数から Oracle テーブルを更新する必要があります。

SAS に JDBC バッチ更新に類似するものはありますか (私は SAS に関わる前に Java プログラミングを行っていました)? proc sqlで更新ステートメントを使用するよりも高速ですが、一時テーブル+パススルーを使用して更新するよりもコーディングが簡単ですか?

4

1 に答える 1

0

SAS / Accessを使用してSASセッションをOracleに接続していますか?

私の状況では、SAS /ConnectJDBCを使用しています。

SAS / Connectは、SASサブストレートシステムをJEEに接続するための非常にシンプルですが効果的な戦略です。基本的に、sas / connectは、sas-dmrを実行するためのsasによるさらに別のtelnet実装です。

sas / connect jdbcを使用してsasデータをjspに描画し、次に、私たちがよく知っているJavaプログラミング手法を使用してデータをoracleまたはsqlサーバーにプッシュします。

sas / connectを使用してsasをJEEに接続することに関する私の古代の論文を読んでください:http: //www.nesug.org/proceedings/nesug04/ap/ap02.pdf。ところで、紙に記載されている連絡先と私に連絡しようとしないでください-彼らは古代です。

あなたのさらなる声明に応えて

JDBCを使用してデータをOracleに挿入する方法が必要だと思いましたか?私の論文では、SASマクロまたはSQLのブロック全体または任意のテキストをJSPに埋め込み、そのテキストのブロックを送信して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);

次に、結果セットの反復ごとにOracleに挿入を織り交ぜるか、結果セットを反復してSQL挿入値のテキストブロックを生成し、それをOracle JDBCに送信することにより、Javaで必要なことをすべて実行します。

JSPの動作方法を知っていて、私が作成したテキストブロックタグライブラリがどのように機能するかを理解していれば、それは単一のJSPになります。ご覧のとおり、私はこの手法を使用して、マクロを変更せずに、本番バッチモードで何年も実行されてきたSASマクロをJSPで実行できるようにします。それだけでなく、タグlibを使用すると、javaおよびjsp変数の解像度をマクロまたはsas/sqlブロックに埋め込むことができます。

このブロックテキストタグlibを作成したのは、Perl(および他のスクリプト言語)で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

于 2010-09-02T23:27:16.700 に答える