■SI ObjectBrowser掲示板

ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!discussion
ユーザーのみなさま同士で教え合ったり、アドバイスしたりする暖かい交流の場にしたいと思っていますので、相互協力をよろしくお願いします。なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

※◆のカラーは投稿の対象となる製品に対応しています。【…OB …OBER …全般 ◇…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。




デバック実行時の値の参照について 2003/05/07 19:07:52
まさ
デバック実行を行った際の変数に入っている値の参照の仕方について教えてください。
PROCEDURE部の中でインスタンスを生成(new関数を使用)し、生成されたインスタンスのメソッドでレコードの更新等を行おうとしています。
メソッドの中までトレースはできるのですが、変数の値が参照できません。
デバック実行画面の下部の値欄に「変数名が正しくないか、現フレームから参照できません」となってしまいます。
メソッド内の変数については参照できないのでしょうか?
元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/08 10:44:58
後迫@SI
こんにちは
後迫@SIです。

申し訳ございません。
ひとつ教えていただきたいことがあるのですが、
「PROCEDURE部にnew関数でインスタンスを生成」という事が
どのようなものかよくわかりません。
(PL/SQLでnew関数はないと思うのですが…JAVAではないですよね?)

もし、別プロシージャの呼び出しもしくは
プログラムのネスト(BEGIN〜ENDの間にDECLARE〜ENDブロックを挿入)という
意味であるなら、変数の参照は可能です。

元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/08 13:18:40
まさ
説明不足ですいません。
以下のコードを書いてトレース実行をした場合、
setDataメソッド(言い方があっているか不明ですが)内に飛ぶ(処理が遷移される)のでが、その時の変数の値が表示されません。
Main内の変数の値は表示されます。PROCEDUREから呼び出しているメソッドの内部の変数の値は表示されないのでしょうか?

CREATE OR REPLACE PROCEDURE Main IS

BEGIN
DECLARE
typUpData UpData := new UpData();
m_Code NUMBER(3);
BEGIN
typUpData.setData(123);
m_Code := typUpData.getData(123);
END;
END Main;
/

CREATE OR REPLACE TYPE UpData AS OBJECT(
m_Code NUMBER(3),
MEMBER FUNCTION getData RETURN NUMBER,
MEMBER PROCEDURE setData( p_Code IN NUMBER ) );
/

CREATE OR REPLACE TYPE BODY UpData AS

MEMBER FUNCTION getData RETURN NUMBER IS
BEGIN
RETURN SELF.m_Code;
END getData;

MEMBER PROCEDURE setData( p_Code IN NUMBER ) IS
BEGIN
SELF.m_Code := p_Code;
END setData;
END;
/

元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/08 19:21:19
遊歩人
まさ さん、こんにちは。

OB8は、使用したことがないのでなんともいえませんが、
OB7では、ネストされている先のデバッグは、できなか
ったと思います。

この辺は、海外のオラクルツールのPL/SQLデバッグ
機能はすごい!です。
元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/08 20:58:29
後迫@SI
こんばんは
後迫@SIです。

こちらこそ勉強不足で誠に申し訳ございませんでした。

検証したところ、
TYPEオブジェクトのFUNCTIONの変数参照は不可能でした。

デバッグ実行につきましては、DBMS_DEBUGパッケージを使用しています。
DBMS_DEBUGパッケージの仕様として不可能かもしれませんが、
もし修正できるのであれば、次回バージョンアップで検討したいと思います。

どうぞよろしくお願いいたします。

元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/14 19:54:20
yokoyama
function func1(a,b,c) の中で function func2(x, y) を呼び出しているときに

func2の中までトレースはできるのですが、変数の値が参照できません。
実行画面の下部の値欄に「変数名が正しくないか、現フレームから参照できません」
となってしまいます。

こういう場合もだめなんでしょうか?
元の文章を引用して返信

Re: デバック実行時の値の参照について 2003/05/15 12:03:16
後迫@SI
こんにちは
後迫@SIです。

お問い合わせいただいた件ですが、

呼出し先のファンクションにある変数の参照はできません。
呼び出し元のみになります。

デバッグ実行につきましては、DBMS_DEBUGパッケージを使用しています。
DBMS_DEBUGパッケージの仕様として不可能かもしれませんが、
もし修正できるのであれば、次回バージョンアップで検討したいと思います。

よろしくお願いいたします。
元の文章を引用して返信