■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
ストアドプログラムの実行でデバッグボタンが使用不可の状態になっています。
使用可にするにはどぉーしたら良いのでしょうか?
ORACLEの方であるスクリプトを実行してパッケージを作成すると使用できるようになる・・・とちらっと小耳に挟んだのですが。そうなるとどのスクリプトでパッケージが作成されればよいのでしょうか?
ご教授お願いしましす。
こんばんは
後迫@SIです。

使用しているパッケージはDBMS_DEBUGパッケージとなります。
権限関係に問題ないか、ご確認をお願いしてもよろしいでしょうか。

また、解決しない場合は以下の追加情報をいただいてもよろしいでしょうか。

①他のOracleユーザ(SYSユーザ)などで、実行しても同様に押せない状態でしょうか?
②SQL*Plusにて以下のSQL文を実行した場合はどのようになりますでしょうか。

set serveroutput on
DECLARE
A NUMBER;
B NUMBER;
BEGIN
DBMS_DEBUG.PROBE_VERSION(A,B);
DBMS_OUTPUT.PUT_LINE('VERSION=' || A || '.' || B);
COMMIT;
END;
/

お手数をお掛けして誠に申し訳ございませんが、
どうぞよろしくお願いいたします。
早速レスありがとうございます。

SYSユーザでSqlplusよりpbload.sqlを実行しました。

しかし、Debugはまだ使用不可の状態です。


記述されていたプロシージャを実行したところ

SQL> run
1 DECLARE
2 A NUMBER;
3 B NUMBER;
4 BEGIN
5 DBMS_DEBUG.PROBE_VERSION(A,B);
6 DBMS_OUTPUT.PUT_LINE('VERSION=' || A || '.' || B);
7 COMMIT;
8* END;
VERSION=2.0

PL/SQLプロシージャが正常に完了しました。

SQL>


となりました。


実行したユーザがいけなかったのでしょうか?

それともプロシージャの実行結果の2.0が何か関係しているのでしょうか。
こんにちは
後迫@SIです。

追加情報をいただきありがとうございます。

誠に申し訳ございませんが、
DBMS_DEBUGのバージョンが2.2未満の場合、
(Oracleサーバのバージョンが7以下の場合)
デバッグ実行で以上終了するため、デバッグの実行を不可にしております。
ご希望に添えず誠に申し訳ございません。

Oracle8以上を導入していただきますと、
DBMS_DEBUGのバージョンが 2.2以上になり、
デバッグ実行をご利用いただくことが出来ます。

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


以下のSQLを実行結果ではOracle8だと思うのですが、


SQL> run
1* select * from v$instance

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_ STATUS PAR THREAD# ARCHIVE LOG_SWITCH_ LOGINS
----------------- -------- ------- --- ---------- ------- ----------- ----------
SHU
---
1 orcl
host01
8.0.3.0.0 04-03-27 OPEN NO 1 STOPPED ALLOWED
NO


SQL>


ver7のスクリプトを実行してしまったということでしょうか?

CDのパッケージも確かにORACLE8となっています。


よろしくお願いいたします。
こんにちは
後迫@SIです。

申し訳ございません。
全会、Oracle8以上と申し上げましたが、
厳密には8.0.4以上の誤りでした。

誤った回答をしてしまい、大変申し訳ございませんでした。

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


「逆順」や「インデックス定義」などで該当と思われる投稿が
見当たりませんでしたので、新規投稿させていただきます。

インデックス定義を表示しようと思って開いたのですが、
以下のインデックスの定義を開くと、TEST_COLUMN_CHAR1
しか見えません。他のパターンもやってみたのですが、
やはり逆順インデックスの定義がどうしても正常に表示さ
れません。

 環境的に、サーバとクライアントのバージョンが微妙に
違うというのがありますが、今すぐには同バージョンで
試すことができないので、まだ同バージョンでの表示テスト
はしてません。

 昔、逆順のオブジェクトは、ツールでうまく見えないことが多い
という話しを聞いたことがあるのですが、OBでもむりなのでしょうか?

環境は、
OB = 8.0.3.8
SQL*Plus: Release 8.1.5.0.0
Oracle8i Enterprise Edition Release 8.1.6.0.0

作成してあるインデックスは、
CREATE INDEX TEST_TABLE_IDX4
ON TEST_TABLE
( TEST_COLUMN_CHAR5 ASC,
TEST_COLUMN_CHAR2 DESC)
PCTFREE 20
TABLESPACE IDX_TABLESPACE
STORAGE
(
INITIAL 40M
NEXT 20M
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 480
);

USER_IND_COLUMNSで見ると、以下のように見えてます。

INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH DESCEND
--------------- ---------- ----------------- --------------- ------------- -------
TEST_TABLE_IDX4 TEST_TABLE TEST_COLUMN_CHAR5 1 5 ASC
TEST_TABLE_IDX4 TEST_TABLE SYS_NC00064$ 2 2 DESC
こんにちは
後迫@SIです。

情報をいただきありがとうございます。

確認したところ、
インデックスの定義にDESCを使用すると、
インデックス情報を正常に表示できませんでした。

原因ですが、DESCを付加してコンパイルした場合、USER_INDEXESのINDEX_TYPE列が
「FUNNTION-BASED-NORMAL」となり、ファンクション索引となるためのようです。

この不具合につきましては、
次回バージョンアップで修正を検討させていただきます。

どうぞよろしくお願いいたします。
回答ありがとうございます。

次回修正していただけるという事で、それはよかったのですが。
うまく情報を取得できそうでしょうか?
といいますのは、Oracleに標準でついている、
EnterpriseManagerのテーブル内容情報表示部分でも、
現時点では正常に表示できていない状態だからです。

確認バージョンは、8.1.6サーバについていたEMです。

さらに明記しておきますと、
EMで見えている間違った状況と、
OBで見えている間違った状況も、
それぞれが違った間違え方で見えている状態です。

USER_IND_COLUMNSで見える、SYS_NC00064$等のカラム名表示
これの解析方法が私にはわかりませんので、こうすれば良い
という回答がわかりません。EMですら間違えてしまう、
動的パフォーマンスビューの逆順表示。。。

どう見れば良いのか、もしわかって、公開できる内容でしたら、
いつか教えていただければと思っております。
こんにちは
後迫@SIです。

追加情報をいただきありがとうございます。
開発側に伝えさせていただきます。

ディクショナリビューから、
「SYS_NC00064$」などの名称をキーにして、
正しい列名を抽出できれば、表示することが可能と考えておりますが、
OEMでも表示できないということであれば、それができない可能性もあります。

現状では、修正可能かどうか、
また具体的な修正方法については検討できておりませんが、
進展があり次第アナウンスさせていただきますので、
どうぞよろしくお願いいたします。
今更ではありますが、ファンクション索引の調査方法がわかりましたので、
お伝えしておきます。

DBA_IND_EXPRESSIONSを使うと見れます。

もしまだ春の時期バージョンに間に合うなら・・・
以前にも同様の投稿があったのですが
その対応が不明だったため再度投稿します

上記タイトルのようなメッセージがテーブル定義等を表示する際に出てきます。
開いたテーブルの定義内容は本来の内容とは異なり項目が全てなくなっています

ですがODBC経由で確認するか若しくはOracle Enterprise Managerのスキーマで
確認すると特に問題いなく表示するのです

以前の投稿ではOracle9iのバージョンのパッチとの回答でしたが
本システムはOracl7なので対処のしようがありません

ただしOracleのサーバクライアントのバージョンに下記のような違いがあります
サーバ:Oracle7 Workgroup Server Release 7.3.4.0.0
クライアント:Oracle8 Release 8.0.5.0.0

サーバがOracle7では対応できないのでしょうか?
こんにちは
後迫@SIです。

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

ご希望に添えず誠に申し訳ありませんが、
Object BrowserがVer.8の場合、Oracle7には対応できません。

詳しくは以下のFAQページに記載しておりますので、ご覧いただけますでしょうか。
http://www.sint.co.jp/siob/html/online8/faq/faq8tech1.html#2

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




実行計画を行うと、
「ORA-01039:ビューの基礎・・・」
というエラーメッセージが表示されます。

なにか、対応策はありますか。

GRANT SELECT ANY DICTIONARY TO XXXX
を実行しようとしたころ、実行不可でした。

GRANT SELECT ON SYS.OBJ$ TO PUBLIC;
GRANT SELECT ON SYS.USER$ TO PUBLIC;
は実行しました。

なにかよいアドバイスがあればおしえてください。
こんにちは
後迫@SIです。

お問い合わせいただきました件ですが、
以下の追加情報をいただいてもよろしいでしょうか?

①実行計画を見ようとするユーザで、
 SQL実行画面を開き、「SELECT * FROM PLAN_TABLE」を実行した場合、
 エラーなしで実行できるか、確認をお願いしてもよろしいでしょうか。

②PLAN_TABLEの作成元のスキーマ(所有しているユーザ)で
 実行計画タブを開いた場合は、エラーなしで実行できるか、
 確認をお願いしてもよろしいでしょうか。

お手数をお掛けしてしまい申し訳ございません。
どうぞよろしくお願いいたします。

遅くなりましたが、確認しました。

もともと①=②なので、
「SELECT * FROM PLAN_TABLE」
は正常に完了されます。

どうぞ、よろしくお願い致します。
こんにちは

SQLを実行するウィンドウで、結果が返ってきたとき、ウィンドウのステータ
スバーに『処理時間:00:00:00』が表示されますが、Ver 8.0.1.5 では、次の
SQLを実行するまで表示されたままなのですが、Ver 8.0.3.8 では、『実行(E)』
ボタンからマウスカーソルが外れると、その処理時間の表示が別の表示内容に
よって消されてしまいますが、これは仕様なのでしょうね?
Ver 8.0.1.5 の方が、この部分に限っては使い勝手が非常によかったのですが、
代替策のようなものはないのでしょうか?
こんにちは
後迫@SIです。

8.0.2.7からは
前ボタンや次ボタンなど、他のツールボタンにドラッグした場合に、
ステータスバーに表示されるように変更されました。
それらのボタン、または下部のSQL文入力欄にドラッグした時点で、
実行時間の表示が消えてしまいます。(上書き)されてしまいます。

この件につきましては、
不便という意見が多いようでしたら、
修正を検討させていただきたいと思います。

代案とまではいかないのですが、
SQL入力欄にカーソルがある場合で、ALT+Eを押して実行した場合は、
SQL入力欄にカーソルがあっても、処理時間が残ります。
ある程度ドラッグしても(他のツールボタンにカーソル移動しない限り)
処理時間は消えませんので試していただけますでしょうか。

ご不便をお掛けしてしまい申し訳ございませんが、
どうぞよろしくお願いいたします。
いつもお世話になっております。

標記の件、投稿No.1663にてSQLを回答いただいておりますが、
#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
#あっさりと(?)公開していて感激してしまいました
経過時間がないですよね?

ついでにご教示頂けると嬉しいです。
こんにちは
後迫@SIです。

>#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
>#あっさりと(?)公開していて感激してしまいました

そうですね。あまり公開できるわけでもないのですが、
内部SQLについては要望があれば教えることにしています。

前回のSQLですが、SELECT句の最後に「A.CTIME」が抜けていました。
大変申し訳ございませんでした。
(経過時間は、V$LOCKのCTIME列を表示しています。)

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

いつもお世話になっております。

早々のご回答誠に有り難うございます。

合わせて質問すれば良かったのですが、セッション情報の
実行コマンドはどこから取得しているのでしょうか?
V$SESSIONにはありませんよね??

それから、「カーソル」タブで表示しているSQL文の
取得方法もご教示頂けないでしょうか?

#お客様に現在の負荷状況を提示する資料に使いたいのです

以上、宜しくお願い致します。
こんにちは
後迫@SIです。

お問い合わせいただきました2点について、回答させていただきます。

①
>合わせて質問すれば良かったのですが、セッション情報の
>実行コマンドはどこから取得しているのでしょうか?
>V$SESSIONにはありませんよね??

セッション情報画面につきましては、以下のようなSQLとなります。
(「実行コマンド」はAUDIT_ACTIONSテーブルから取得しています。)

SELECT A.SID,
A.STATUS,
A.USERNAME,
A.SCHEMANAME,
A.OSUSER,
A.MACHINE,
A.PROGRAM,
A.SERIAL#,
B.NAME
FROM V$SESSION A,
AUDIT_ACTIONS B
WHERE A.COMMAND = B.ACTION

②
>それから、「カーソル」タブで表示しているSQL文の
>取得方法もご教示頂けないでしょうか?

オープン中のカーソル情報を所得するSQLは以下のとおりです。
(SIDは①のSQLで取得したSIDを代入しています。)

SELECT B.SQL_TEXT
FROM V$OPEN_CURSOR A,
V$SQLTEXT B
WHERE A.SID = /* ①の SID */
AND A.ADDRESS = B.ADDRESS
AND A.HASH_VALUE = B.HASH_VALUE
ORDER BY B.ADDRESS, B.HASH_VALUE, B.COMMAND_TYPE, B.PIECE

どうぞよろしくお願いいたします。
無事取得できました。

どうも有り難うございました。

今後とも宜しくお願い致します。
こんにちは
後迫@SIです。

お問い合わせいただきました件につきましてですが、
以下のSQLで可能と思われますのでお試しいただけますでしょうか。
(前回のSQLから、WHERE条件に2行を追加しております。)

SELECT A.SID,
C.USERNAME,
C.OSUSER,
DECODE(A.TYPE, 'TM', B1.NAME, ''),
DECODE(A.TYPE, 'TM', B2.NAME, ''),
DECODE(A.TYPE, 'TX', '行ロック', 'TM', '表ロック', A.TYPE),
DECODE(A.LMODE, 0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', ''),
DECODE(A.REQUEST,0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', '')
FROM V$LOCK A, SYS.OBJ$ B1, SYS.USER$ B2, V$SESSION C
WHERE A.ID1 = B1.OBJ#(+)
AND B1.OWNER# = B2.USER#(+)
AND A.SID = C.SID
AND C.TYPE = 'USER'
AND REQUEST IS NOT NULL
AND BLOCK = 1

何卒よろしくお願いいたします。
はじめまして。
件名について教えてください。

SELECT *
FROM DBA_TABLES
WHERE OWNER = 'CCAB'

上のSQLを実行すると
数値型のデータ(右揃え)が文字型(左揃え)データとして表示されます。
結果をエクセルに出力したところ数値データはすべて文字データ扱いになり
これら文字データはエクセルのプロパティで数値に変換することもできません。

解決策がありましたらご教授下さい。

こんにちは
後迫@SIです。

数値型が文字型として出力される件につきましてですが、
該当の列名とOracleのバージョンを教えていただいてもよろしいでしょうか。
また、Object Browserのバージョンも教えていただいてもよろしいでしょうか。

どうぞよろしくお願いいたします。
はじめまして。いつもObjectBrowserには、お世話になっております。
私も、最近この件で、困っています。
私の使っているのは、Version 7.0.9.42で、数値データは、数値扱いになるのですが、お客様のところで使っているものは、8.0.0.0 、数値データは、エクセル上で文字となり、扱いに困ります。設定かなにかでしたら助かるのですが・・・。
セットで 2004/03/17 11:55 OB 1
OB8のツール→オプション→定義情報タブに変更後のソースを保存する
という機能がありますが、PACKAGE+PACKAGE BODYをセットで1つのファイルに
して保存したいのですが、できませんか?
こんにちは
後迫@SIです。

お問い合わせいただきました件ですが、
変更前ソースの保存機能にて、
PACKAGEとPACKAGE BODYを同じファイルに保存することはできません。

ご希望に添えることができず誠に申し訳ございません。
次回バージョンアップの要望として承りたいと思います。

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