■SI Object Browser 掲示板


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

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

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
はじめまして、ももたろうです。

先日、OB8をインストールしました。
クライアントはOracle9i(9.2.0.1)、サーバーはOracle8(8.0.5)なのですが動作がうまくいきません。
状態:接続はできるがテーブル、ビューのオブジェクトを開くと画面が閉じてしまいます。
エラーメッセージは表示されません。ただし、インデックスは開くことができるようです。
これについて何か回避方法はあるのでしょうか?
こんにちは
後迫@SIです。

お問い合わせいただきました件ですが、
同様のお問い合わせをいくつかいただいております。

テーブルを開くときに発行しているSQL文を実行すると
接続が切断されてしまうようです。
SQL*Plusで実行しても同様でしたので、
Oracle9.2.0の不具合と思われます。
(9.2.0.3のパッチを適用しても解決できませんでした。)

ただ、弊社の同環境では現象を再現できませんでしたので、
環境に依存する不具合のようです。

回避方法としましては、
サーバを9iにバージョンアップするか、
クライアントを9.0.1以前に戻すしかありません。

ご希望に添えず誠に申し訳ございません。

テーブルを開くときに発行しているSQL文を以下に記述いたしますので、
一度SQL*Plusでご確認いただけますでしょうか。
(テーブルの所有者ユーザ名とテーブル名を代入して実行いただけますでしょうか。)

SELECT A.COLUMN_NAME,
A.DATA_TYPE,
A.DATA_TYPE_OWNER,
A.DATA_LENGTH,
A.DATA_PRECISION,
A.DATA_SCALE,
DECODE(A.NULLABLE, 'Y', ' ', '1'),
A.DATA_DEFAULT,
B.COMMENTS,
A.DATA_LENGTH FROM ALL_TAB_COLUMNS A,
ALL_COL_COMMENTS B
WHERE A.OWNER = /* テーブルの所有ユーザ名 */
AND A.TABLE_NAME = /* テーブル名 */
AND A.OWNER = B.OWNER
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
ORDER BY A.COLUMN_ID

よろしくお願いいたします。
初めまして。
現在オブジェクトブラウザ7でoracle9i(クライアント)に接続しています。
先日データベース上にもう一つ表領域を作成したところ、sysユーザでしか
そのデータベースにログイン出来なくなりました。(SQLPLUSではログインできます)
オブジェクトブラウザ7でoracle9iの組み合わせだからなのでしょうか?
こんにちは
後迫@SIです。

お問い合わせいただきました件ですが、
以下の点を確認させていただけますでしょうか?
①エラーメッセージは出力されますでしょうか?
②インスタンスを起動していないという事はないでしょうか?
後迫@SIさんこんにちは
>①エラーメッセージは出力されますでしょうか?
「テーブルが存在しません。ORA-00942:表またはビューが存在しません。
 エリアス:DB1」
>②インスタンスを起動していないという事はないでしょうか?
起動しているのは確認しました。

ログイン出来ないユーザのユーザ情報を見ると別ユーザの表領域情報も
そのユーザの表領域情報と一緒に表示されていました。

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

お手数ですが、
以下の事項を試していただけますでしょうか。

①SYS以外のユーザに、
 SELECT ANY TABLE権限を付加した場合に接続できるか、確認していただけますでしょうか。
 (全く関係ないかもしれませんが、
 過去に同様の不具合報告をいただいており、
 SELECT ANY TABLE権限を付加することにより解決できましたので。)

②それでも解決しない場合、データベーストレースを行っていただき、
 トレースファイルを弊社サポートまで送付願えますでしょうか。

お手数をお掛けいたしますが、
どうぞよろしくお願いいたします。
ObjectBrowser8を使用しています(試用期間中です)。
VARRAY型を定義したTYPE_Aの中に、OBJECT型のTYPE_Bが複数入っている、TYPE_A型のCOL1というフィールドがあるとします。
このような感じです。

COL1(NUM1,NUM2,NUM3)
----------------------
TYPE_A(
  TYPE_B(1,2,3),
  TYPE_B(4,5,6),
  TYPE_B(7,8,9)
)

このようなフィールドを含むテーブルを見ようとすると
  変数 にセットした値 0 が無効です。
というメッセージが出て何も表示されなくなってしまいます。
COL1だけが空白なのではなく、全てのデータが表示されません。

また、これとは別件なのですが、取得したデータをExcelへ出力する際に
頻繁にエラーが出てしまいます(OLEエラー)。

さらに、Excelへの出力中は、クリップボードが現在出力中のデータで占められてしまい
出力中は他のアプリケーションでのコピー&ペーストが全く使用できなくなってしまいます。

対処法などありましたらよろしくお願いします。
BLOB型のフィールドを含むテーブルをExcelに出力しようとすると、そこから先のフィールドが全て空白になってしまいます。
たとえばCOL2がBLOB型のテーブルがあったとして

COL1 COL2 COL3 COL4
 001  ※  あ   え
 002  ※  い   お
 003  ※  う   か
(※…バイナリデータ)

Excelに出力した場合

COL1 COL2 COL3 COL4
001
002
003

となってしまいます。
こんにちは
後迫@SIです。

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

弊社で現象を再現いたしました。
VARRY型のデータ表示時のエラー、BLOB型データの出力時の現象、
どちらともVer.8の不具合です。

誠に申し訳ございません。
この不具合につきましては、次回バージョンアップで修正させていただきます。
どうぞよろしくお願いいたします。
こんにちは
後迫@SIです。

いまさらながら申し訳ございません。
以下のページにFAQを追加いたしましたのでご参照をお願いいたします。

http://www.sint.co.jp/siob/faq.asp#エラーメッセージが出る

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

6/6からOB掲示板が停止しておりましたが、
本日復旧いたしました。

ご迷惑をお掛けしてしまい
大変申し訳ございませんでした。

これからもどうぞよろしくお願いいたします。

たあぼです。

リバースエンジニアリングで子テーブルが親テーブルを2つ以上参照していると
余分なカラムが付与されます。
例えば、下記のようなテーブルがあります。
CREATE TABLE TABLE_OYA
(
ID VARCHAR2(1) NOT NULL,
NAME VARCHAR2(10)
)
/
ALTER TABLE TABLE_OYA
ADD(CONSTRAINT PK_TABLE_OYA PRIMARY KEY (ID) USING INDEX)
/

CREATE TABLE TABLE_KO
(
KEY NUMBER(2,0) NOT NULL,
ID1 VARCHAR2(1),
ID2 VARCHAR2(1),
ID3 VARCHAR2(1)
)
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT PK_TABLE_KO PRIMARY KEY (KEY) USING INDEX)
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID1 FOREIGN KEY(ID1) REFERENCES TABLE_OYA (ID))
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID2 FOREIGN KEY(ID2) REFERENCES TABLE_OYA (ID))
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID3 FOREIGN KEY(ID3) REFERENCES TABLE_OYA (ID))
/

OBERでリバースエンジニアリングするとTABLE_KOにIDというカラムが余分に付きます。
調査をお願いします。

CREATE TABLE TABLE_KO
(
KEY NUMBER(2,0) NOT NULL,
ID1 VARCHAR2(1),
ID2 VARCHAR2(1),
ID3 VARCHAR2(1),
ID VARCHAR2(1) NOT NULL ← 余分なカラム
)
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT PK_TABLE_KO PRIMARY KEY (KEY) USING INDEX)
/

CREATE TABLE TABLE_OYA
(
ID VARCHAR2(1) NOT NULL,
NAME VARCHAR2(10)
)
/
ALTER TABLE TABLE_OYA
ADD(CONSTRAINT PK_TABLE_OYA PRIMARY KEY (ID) USING INDEX)
/

ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID1 FOREIGN KEY(ID1) REFERENCES TABLE_OYA (ID))
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID2 FOREIGN KEY(ID2) REFERENCES TABLE_OYA (ID))
/
ALTER TABLE TABLE_KO
ADD(CONSTRAINT FK_TABLE_KO_ID3 FOREIGN KEY(ID3) REFERENCES TABLE_OYA (ID))
/


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

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

現象を確認いたしました。
リレーションを張る列名がそれぞれ異なる場合に、
この現象が発生いたします。

誠に申し訳ございません。
こちらの現象につきましては、
次回バージョンアップにて修正させていただきます。

ご不便をお掛けいたしますが、
どうぞよろしくお願いいたします。
[OB8 への要望です]

ボタンで COMMIT、ROLLBACK を行うと、ステータスバーにメッセージが出ます。

  現行データベースのトランザクションを COMMIT しました。

複数インスタンスに同時に接続して逐次切り替えながら操作している場合、
「現行データベース」があやふやになってしまうことがあります。

メッセージに接続対象を明示していただき、

  現行データベース(USER01@DB01)のトランザクションを COMMIT しました。

のように表示されると助かります。

ご検討をお願いします。
こんにちは
後迫@SIです。

ご要望ありがとうございます。

確かにコミット、ロールバック時に
接続先がわかると便利ですね。

是非検討させていただきますので、
よろしくお願いいたします。



[OB8 への要望です]

「SQL 実行」に履歴がありますが、実行(E) の時点では更新されません。
SQLLOGxx.SQL は作成しているはずなので、同時に履歴の更新(フラッシュ) を
していただきたいのです。

これが必要になるのは、
  ・ 実行してみたら延々と終わらないので OB を強制終了した時
  ・ PC がフリーズして PC 自体を強制終了した時
などです。

作業フォルダに SQLLOGxx.SQL は残っているのですが、(←これを知らない人も意外と多い)
一つ一つ開いてみないといけないので、目的のものになかなかたどり着けません。

.SQL が残っていると思いつかない人が多いのも、履歴をみて残っていないので、
そこであきらめてしまうからです。

履歴をフラッシュしていただければ解決すると思いますので、よろしくお願いします。
こんにちは
後迫@SIです。

ご要望いただき、ありがとうございます。

実行した時点では履歴に更新されていないとの事ですが、
更新されていると思います。

例えば、
SELECT SYSDATE FROM DUALを実行した後、
履歴ボタンを押すと、履歴の先頭にSYSDATE FROM DUALは残ると思いますので、
ご確認いただけますでしょうか。
私の言葉が足りなかったようです。
下記の状況が再現するか、そちらで確認してみて下さい。

「SQL 実行」で、

① 結果が返されるまでに長時間かかる SELECT を記述し、実行(E)。

② ①が完了しないうちに Ctrl+Alt+Del で OB8 を強制終了する。(←「完了しないうちに」がポイント)

③ 再度 OB8 を起動し、「SQL 実行」で 前(P) を実行。

④ 表示される SQL は、①の SQL でなく、それより少し前に実行した
 SQL のはず。

 ※ この時、該当 SQL についての SQLLOGxx.SQL はできているが、
  SQLLOG.IDX には反映されていないはずです。

よろしくお願いします。

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

なるほど。
確かに実行途中で終了した場合は履歴に残りませんでした。

次回バージョンアップで
SQL実行途中で終了しても履歴を残すように検討したいと思いますので、
よろしくお願いいたします。
長いSQL実行時に実行前に履歴を更新するというのは
これはこれでいいのですが
これ以外の時にSQLがエラーで終了した場合に履歴に
保存しないモードを作ってもらえないでしょうか
実行もできないSQLが履歴半分以上を占めることが多く
必要なものをよく押し出してしまっていますので。
こんにちは
後迫@SIです。

貴重なご意見いただきありがとうございます。

実行に失敗した場合も履歴を保存するのは
場合によっては必要だと思いますので、
残すか残さないかを選べるようなオプションを検討したいと思います。

どうぞよろしくお願いいたします。
こんにちは、山田@nisCOMです。

OB8でSYSユーザーでSYSDBAとして接続し、他スキーマのPACKAGE BODYのソースを
表示しようとすると「定義情報を読み込めませんでした。」というエラーが
発生してしまいます。またこの際、画面描画がおかしくなります。

PACKAGEのヘッダ部の表示や、PROCEDURE、FUNCTIONのソース表示は問題なく
行えます。また、SYSTEMユーザではPACKAGE BODYのソースも問題なく
表示できます。

原因と回避策(SYSTEMユーザーで接続する?)をご教示願います。


(環境)
サーバ:Windows2000 SP2
Oracle:Oracle8.1.7 EE

クライアント:WindowsXP Professional
Object Browser:8.0.1.5