• 締切済み

ストアドプロシージャに渡された引数の参照方法

コンパイル済のVB6のプログラムからストアドプロシージャをCALLして いるのですが、実際にどのような値を渡しているのかを調べなければなりません。 VB6の開発環境があれば容易いのですが、現在実行環境しかない為ORACLE側での 調査が必要です。 全てのプロシージャに出力ロジックを追加すれば良いのですが、 数が多すぎて対応に困っております。 ツールや方法論等につきまして、どなたかご存知でしたらご教授頂けると助かります。 環境は以下の通りです。 Client: WindowsXP SP3 VB6で作成したEXE Server: Linux(Red hat linux) ORACLE 11g Standard PL/SQLで作成したStoredProcedure ちなみに、JdeveloperやOracle SQL Developerも調べて見たのですが、 お恥ずかしながら、今一理解が出来ませんでした。

  • Oracle
  • 回答数2
  • ありがとう数2

みんなの回答

回答No.2

セッショントレースで、捕まえられないのなら・・ オラクルがキャッシュしているSQLを見る位しか思いつかないんですが、 データディクショナリのv$sqlやv$sqltextを見ると今実行中のSQLを確認できます。 v$sessionと絡めれば、どのクライアントからリクエストなのかも切り分けできますよ。 ただし、バインド変数を使っていると、バインド変数名が表示された気がしますけどね。 SQL文を提示するといいんですが、今手元に環境がないので、ご自分で試行錯誤してみてください。 (昔、どっかの掲示板で書いてあげた思い出はあるんですが、見つけられませんでした)

katata
質問者

お礼

補足ありがとうございます。 v$sql_bind_captureよりバインド変数を参照する方法ですね。 了解しました。

回答No.1

セッショントレースを採れば、どんなSQLを投げているのか判ると思いますよ。 トレースの取り方は、マニュアルを確認されるとよいと思います。 まあ、こんな感じで難しいわけではないですけどね。 http://www.geocities.jp/principal_focuses/tech/ora/ora_turne/ora_turne_210.html 他にも、オラクルのシステム表に最近リクエストされたSQLはキャッシュされているので、 それを確認する方法もありますが、トレースの方が後でじっくり見れるので、お勧めだと 思います。

katata
質問者

お礼

ご回答ありがとうございます。 私の文章の書き方が悪かったのですが、 VBのプログラムからストアドプロシージャを呼び出す時に 渡している引数(パラメータ)の内容を調べたいと考えております。

関連するQ&A

  • ストアドプロシージャからストアドプロシージャを呼ぶことはできるか?

    ストアドプロシージャからストアドプロシージャを呼ぶことはできるか? Oracle10g WindowsServer2008 Aというプロシージャ内でEXECコマンドを使ってBというプロシージャを呼ぶようにしたところコンパイルエラーになりました。ストアドプロシージャからストアドプロシージャを呼ぶことはできないのでしょうか?

  • Accessからoracleのストアドプロシージャを呼び出したい。

    はじめまして。 いきなりですが質問させてください。 Accessからoracleのデータベース内に有るストアドプロシージャを使いたい(ボタンを押したらoracleのプロシージャが起動するイメージ)のですがAccessのVBAからはどのようにすれば使用できるのでしょうか? 色々調べて見たのですがVBからのはよく有るのですがVBAからは見つけられませんでした。 ODBCで繋げて呼び出しが出来たらなと思っています 無理ならば他の方法でも構いません。 よろしくお願いします。 使用環境 Access:2002 oracle:Oracle9i Enterprise Edition Release 9.2.0.1.0

  • .NETからストアドプロシージャを実行

    VB.Netからストアドプロシージャを実行するプログラムの書き方がよく分かりません。 データベースはOracleです。 PROCEDURE test(aaa IN number, bbb IN varvhar2, ccc IN OUT varchar2); といったPL/SQLをVB.NET上で実行するとします。 (略:データベースへの接続処理) strSql = "begin test(10, 'テスト', '');end;" 結果「式が割り当てられていません」とエラーが出ます。 すべての引数がINのプロシージャでは、上記の方法で実行できたので、IN OUTへの引数の渡し方に問題があると思うのですが、どうしても分かりません。 まだ使い始めたばかりで、どうしていいかまったく分からない状態です。 どうかご指導お願い致します。

  • Oracleストアドプロシージャについて

    現在、夜間バッチで海外FTPサーバーからCSVファイルをDWHサーバーに格納後、 同DWHサーバー内のOracleテーブルにInsertするという処理の開発をしているのですが、 CSVの取得はDOSバッチとTeratermのマクロで取得しようと思っています。 しかし、CSVファイルのInsert処理はPL/SQLで開発を行おうと考えています。 それは、Insert後にそのテーブルと別サーバーのOracleテーブルを使用してデータの加工を行い、 その結果をDWHテーブルにロードしなければいけないからです。 ちなみに、今まではVBしか触ったことしかなくPL/SQLやバッチの作成はは初めてです。 そこで質問なのですが、PL/SQLで他のサーバーのテーブルとリレーションは出来るのでしょうか? (VBAでは1つのサーバーにしか同時接続できなかったため) またその場合のフローチャートのイメージが出来ないのですが、箇条書き程度で結構ですので教えていただけないでしょうか?(どこでストアドプロシージャに処理が移行するのかなど....) 長い文章でわかりにくいと思いますが、識者の方がいれば教えていただければ幸いです。

  • オラクルについての質問

    オラクルについての質問 いつもお世話になっております。 オラクル初心者でヴァージョンは11gを使用しております。 そしてSql developerで 現在ストアドプロシージャでカーソルを使った割と単純な PL/SQLを作成しているのですが、コンパイルエラー が出ており、その原因が掴みきれないでいるのですが、 例えばステップインの様な機能はないでしょうか。 順を追ってどこにエラー原因があるのかを確認したいのです。 ご教示の程、宜しくお願い致します。

  • ストアドプロシージャのファイルサイズの調べ方

    お世話になります。 オラクルに登録したストアドプロシージャのファイルサイズを調べる手段についてお聞きしたいと思います。 クライアントでテキストファイルに落すこと無く、サーバーで登録してあるプロシージャのファイルサイズを一覧で取得するようなバッチ処理を考えています。 プロシージャのファイルサイズを取得できるのか、よく分からないのですが、ご存知の方、お知らせください。 サーバー環境 windowsNT oracle8

  • PostgreSQLでストアドプロシージャについて

    皆さんのお陰でストアドファンクションを作成する事ができました。 ここで1つ、疑問が・・・ ネットでPostgreSQLの「CREATE PROCEDURE」を検索しても私が望んでいる情報を得る事ができませんでした。 申し訳ありませんがここで質問があります。 PostgreSQLで「CREATE PROCEDURE」はないんでしょうか。 PostgreSQLではストアドプロシージャとストアドファンクションは一緒なのでしょうか。 MySQLやSQL Serverではストアドプロシージャとストアドファンクションは別だった気がしますが・・・ ※違っていたらすみません。 どなたか私の疑問を解決していただけませんでしょうか。 宜しくお願いします。

  • ストアドプロシージャ

    ストアド初心者ですが Oracle 9iのストアドプロシージャを作成したいのですが 全くわからず困っています。 とりあえず、以下のテーブルが既に存在し 受注番号がわかっていて、商品名、数量、単価の変更を ストアドプロシージャでおこなうにはどのようにすればよいでしょうか? ご教授お願い致します。 ********************************************** テーブル名:TEST 項目1:受注番号 項目2:商品名 項目3:数量 項目4:単価 項目5:受注日 PS. ストアドのわかりやすい解説書やホームページ お知りの方いらっしゃいましたら、ご教授お願い致します。

  • ストアドプロシージャで外部プログラムを起動するには?

    こんにちは。 SQL Serverから外部プログラムを呼び出すストアドプロシージャを作りたいと思っていますがなかなか上手くいきません。 データベースの内容が変わったときに(INSERT,DELETE等で)特定の外部プログラムを実行するストアドプロシージャを作りたいと思っています。 (SQL Serverに関してまったくの素人なので言葉に誤りがあるかもしれません) 外部プログラムを呼び出す機能として、拡張ストアドプロシージャでxp_cmdshellというものがあるらしいのですが、sysadminユーザしか使うことが出来ず、セキュリティ上にも問題があるとのことなので、xp_cmdshellを使わずに外部プログラムを呼び出す方法を探しています。 具体的な方法、ソース等ありましたら、教えてもらえないでしょうか? また、そんなこと出来ないと言ったことでも教えてもらえると助かります。 現在の環境 Windows XP Professional SQL Server 2005 Developer Edition 宜しくお願いいたします。

  • ASP.netにストアドプロシージャが登録できない

    ASP.netにストアドプロシージャが登録できません。 SQLServer2000にストアドプロシージャを作成しASP.netにsqlcommandを作成。 sqlcommandのプロパティのcommandtypeをStoredProcedureとし、 commandtextにストアドプロシージャ名を入力すると このコマンドの新しいパラメータコレクションを作成しますか?と出てきて 「はい」とするとサーバー名選択画面となり、サーバー名を正しく入力し ログインID、パスワードも正しく入力、オプションも正しく入力したが OK押下後にプロパティの値が無効ですとなってしまい詳細を見ると ストアドプロシージャ***がデータベースに見つかりませんでしたと なってしまいます。 既存のストアドプロシージャはリンク出来るのですが、新規のものが このようになります。原因・解決方法を教えて頂きたく宜しくお願いします。