- - PR -
PL-SQLでファンクションとストアドプロシージャの差が知りたいです。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-10 17:26
皆さんこんばんは!!
相変わらず皆さんに教えて頂きたいことがあって、質問します。 環境 java 1.4.2 Tomcat 5.0 struts 1.2 spring oracle 9i DBにクエリを実行する時、パラメータと戻り値が変わらないため DBの機能を使おうとしています。 ですが、オラクルで調べた結果 ファンクションとストアドプロシージャと言う方法がありますが、 その差がはっきりわかりませんので、 皆さんに教えて頂きたいと思います。 パラメータ:param1, param2, param3, param4 戻り値 :return1(VARHCAR2), return2(Number), return3(VARHCAR2), return5(VARHCAR2), return6(Number) 戻り値をクラスに設定して、Javaで使用したいと思いますが、 どうすればいいでしょうか? 以上、宜しくお願いします。 タンちゃん | ||||
|
投稿日時: 2005-11-10 17:49
ストアドプロシージャは戻り値がないもの ストアドファンクションは戻り値があるもの でOKだと思います。 Wiki PL/SQL ストアドプロシージャ・ストアドファンクション にもあるように ファンクションはSQL文中から呼び出すことが主な使い方になると思います。 SQLの列の値を渡し、 ファンクション内で編集などの加工して 結果を戻り値として返す。 SQLの結果としてファンクションで加工した内容が表示される ・・・っていうイメージですね。
でタンちゃんさんの書いているものより、 ストアドプロシージャで 戻り値はOUTPUTパラメータにすればいいかと思います。 #特段戻り値が必要な気がしなかったので。 ストアドプロシージャを実行し、 OUTPUTパラメータの値をクラスにセットすればいいんじゃないでしょうか? | ||||
|
投稿日時: 2005-11-10 19:03
夏椰【SUICA】さん
早速のご返事有難うございます。 教えて頂いた方法でやってみます。 助かりました。m(__)m タンちゃん |
1