• ベストアンサー

ストアドプロシジャからストアドプロシジャを呼ぶには?

ストアドプロシジャ(例えば、A)から別のストアドプロシジャ(例えば、B)を呼ぶ方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • tyurajima
  • ベストアンサー率28% (16/57)
回答No.2

そのまま呼べば大丈夫ですよ。 例えば プロシージャの場合 PROCEDURE B(aa IN NUMBER) AS BEGIN ・・・ END; PROCEDURE A AS BEGIN ・・・ B(1); -- Bの呼び出し END; ----------------------------------------- ファンクションの場合 FUNCTION B(aa IN NUMBER) RETURN NUMBER AS BEGIN ・・・ END; PROCEDURE A AS w_rtn NUMBER; BEGIN ・・・ w_rtn := B(1); -- Bの呼び出し END; 関数を読み出すみたいにすればOKです。

mikadonpapa
質問者

お礼

ありがとう、ございます。 早速、サンプルの通り、やってみました。 大変、助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

こんにちは。 普通に呼べませんか? (^^ゞ

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ストアドプロシジャのコンパイル

    ストアドプロシジャのコンパイルは、どういうふうにやればよいのですか?尚、ストアドプロシジャ用のSQL分は、流用して作成しては、いるのですが、コンパイルする方法が分からなくて、困っています。

  • ストアドプロシジャで配列

    ストアドプロシジャで配列の変数定義はできますか?

  • ストアドプロシジャ

    ストアドプロシジャの方法で削除処理をしたいと考えています。 ダイナセットはデータ件数が沢山あって、使いたくありません。 言語 VB6.0 DB ORACLEは9iで、oo4oで接続しています。 DBは テーブル名 売上 列名    データID       伝票日付 っていうふうになっていて、 例えば、伝票日付が今日のデータ分削除処理をしたいんですが いろいろなサイトを見てもいまいちわからないので投稿しました。 お願いします。

  • ストアドプロシジャで、TRUNCATEするには?

    ストアドプロシジャで、TRUNCATEするには? 例、 CREATE OR REPLACE PROCEDURE TAI_00NEN AS BEGIN TRUNCATE TABLE CHOSEIWR; COMMIT; END; / これだと、コンパイルエラーがありますとなります。

  • ストアドプロシジャって別名でコールできないのでしょうか?

    VBの方で質問したらいいのか悩んだのですが、 Oracleのハナシっぽいのでこちらで。 BBBユーザーで AAAユーザーのP01_TESTストアドプロシジャに対する プライベートシノニム「P01_TEST」を作成したのですが、 VBからBBBユーザーにてoo4oで実行するとき、 BEGIN P01_TEST(abc);END; でExecuteSQLしてもエラーとなります。 SQL execution error, ORA-06550: 行 1、列 7: PLS-00201: 識別子 AAA.P01_TESTを宣言してください。 ORA-06550: 行 1、列 7: PL/SQL: Statement ignored BBBユーザーから、P01_TESTをコールするにはどうしたらいいのでしょうか?

  • VBからストアドプロシジャを実行

    VBからストアドプロシジャを実行すると、下記のエラーが発生します。 型 'System.InvalidOperationException' の初回例外が Oracle.DataAccess.dll で発生しました オブジェクトの現在の状態に問題があるため、操作は有効ではありません。 テーブルとプロシジャはシステムユーザの管理下にあり、一般ユーザで接続しています。直接SQLを実行すると正しく動作しています。以下にコードを示しますが、どこに問題があるのでしょうか。システムユーザの管理下にある事より直接SQLを実行した時と同じ様に「system.xxx」としても結果は変わりませんでした。あと、一般ユーザにはconnectとselectの権限のみ与えています。 ■VB側のコード 'オブジェクト Dim oraCmd As New OracleCommand 'PL/SQLパラメタ Dim oraPrm1 As OracleParameter Dim oraPrm2 As OracleParameter ' 実行タイプ(PL/SQLとして実行) oraCmd.CommandType = CommandType.StoredProcedure ' プロシージャ名 oraCmd.CommandText = "GETNAME" ' パラメータクリア oraCmd.Parameters.Clear() ' 1つ目のパラメータ( IN なのでデータセット ) oraPrm1 = oraCmd.Parameters.Add("PM_STRING", OracleDbType.Varchar2) oraPrm1.Value = "2001" oraPrm1.Direction = ParameterDirection.Input ' 2つ目のパラメータ( OUT なので、Direction プロパティにセット ) oraPrm2 = oraCmd.Parameters.Add("PM_NUMBER", OracleDbType.Int16) oraPrm2.Direction = ParameterDirection.Output Try ' 結果を受け取り、後で処理する oraCmd.ExecuteNonQuery() Catch ex As Exception conn.Close() Console.WriteLine(ex.Message) Return End Try Console.WriteLine(oraPrm2.Value.GetType()) ■ストアドプロシジャ CREATE OR REPLACE PROCEDURE GETNAME (IN1 IN NUMBER, OUT1 OUT VARCHAR2) AS BEGIN select NAME INTO OUT1 from TEST where CODE = IN1; END GETNAME;

  • WHERE句を動的設定する方法

    SQLサーバーのストアドプロシジャを記述するにあたりWHEREのフィールド名と値を動的に設定する方法を教えてください。

  • Excelで日付による個数カウント

    過去の質問を検索しても見つけることができなかったので教えてください。 Excelである日からある日までの個数をカウントしたいのですが何かよい方法はありますか?できるだけ簡単な方法が良いのですが。 やりたいこと) 列A 列B A  1/5 B 1/4 A 1/6 B 1/5 A 1/5 B 1/7 B 1/8 B 1/6 たとえば上記のような表があるとして列Bの1/5~1/7の個数を別のセルに表示したいのです。最終的には列Aが“B”かつ1/5~1/7の個数を別のセルに表示したいのです。 回答をお願いします。

  • ストアドプロシジャと変数のセットについて

    SQL SERVER 2005を利用し、ストアドプロシージャを作成しております。 あるストアドでwk_hizukeというテーブル(下記の構成)から、tokuisakicode tokuisakicode int, denpyouhizuke smalldatetime を変数@tokucdへ送り、別のストアドを呼び出し@hizuke1を戻り値として メインのストアドへ戻し、@hizuke1を上記テーブルのdenpyouhizukeへ格 納したいというのが行ないたいことです。 wk_hizukeというテーブルには複数のレコードが入っており、そのレコード を一件ずつ読みながら、上記の処理を行ないたいと考えております。 select tokuisakicode set @tokucd = tokuisakicode exec sp_hizukesanshutu @tokucd , @hizuke1 output , from wk_hizuke このような構文を記述してみたのですが、エラーとなってしまいました。 根本的に考え違いをしているのかと思い、いろいろ調べてみたのです が、妥当と思われる構文を見出すことができずにおる次第です。 アドバイスいただければ幸いです。宜しくお願い致します。

  • 占有訴権が機能しない場合の対処の仕方って?

    友達Aから借りたパソコンを別の友達(B)の家に忘れて帰った場合、その別の友達Bに対して自分からは民法的には何も言えないのでしょうか? 所有権者である友達Aは所有権に基づいてBに返還請求をできるでしょうけど。なるべくなら友達Aの手をわずらわせないで自分でBから取り戻す方法があれば嬉しいです…。 また、単に取り戻す方法としてはどのようなものがあるでしょうか? 質問が多くて申し訳ありません…。 どうかご回答よろしくお願いします

このQ&Aのポイント
  • フリマアプリのメルカリで不正なログインがあり、私のお金が引かれました。メルカリに連絡しても制限を解除してくれず、問い合わせも一切無視されています。
  • 不正利用された金額は3万円で、私の貯金です。メルカリからの連絡もなく、お金を返してくれない可能性があります。
  • この問題を解決するために弁護士に相談しようと思っています。弁護士費用を大体で構いませんので、いくらかかるか教えていただけますか?また、メルカリ本社に行くための手順や必要書類についても教えてください。
回答を見る