■SI Object Browser 掲示板


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

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

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
OB7を使用しております。
そこで、質問なのですが、「ロード」という機能を使い、DATファイルとCTLファイルを作成したいのです。
出力するテーブルには現在1,220,499件データがありまして、「ロード」(DB→ファイル)を実行すると
588,672件までしか出力されないのです。
処理後「処理を完了しました」のメッセージボックスが表示され、その後
「一時テーブルのリソース制限を超えます」とメッセージが表示されます。
これは何か設定の問題なのでしょうか?
分かる方がいらっしゃいましたらご回答お願いします。
こんにちは
後迫@SIです。

おそらくBDEの問題だと思われます。

BDE設定にて、
BLOB SIZE
BLOB TO CACHE SIZEを増やしていただくことで
解決する場合がございます。

また、Object Browser 8ではBDEを廃止しておりますので、
全件ロードできると思います。
(Oracleは8以上が前提ですが)

一度トライアル版をダウンロードしていただき、試していただけますでしょうか。
よろしくお願いいたします。




先日はご回答をありがとうございました。

さっそく実行しようと思い、BDEの設定画面を開いてみました。
なのですが、どこにも同じ設定個所があり、どこに設定すればいいのかわかりません。。。
(データベースと環境設定、どちらもありますよねぇ。。。)

そして、BLOBS TO CACHE、BLOB SIZEの値を増やす目安がわかりません。
どれくらいのレコード数だと、この値というのが分かればいいのですが。。。
ヘルプを見たらBLOB SIZEの有効値は32~1000で、
BLOBS TO CACHEの有効値は64~65536となっていますが、最大値にしても何か問題はないのでしょうか?

ちなみに出力対象データ件数は1,220,499件あります。
度々すみませんが、ご回答をお願いします。
私も教えて頂きたいです。
そもそも、この数値の単位は何でしょうか?
よろしくお願い致します。
こんにちは
後迫@SIです。

BLOBS TO CACHEサイズは
BDEが使用するバッファのメモリサイズです。

大量のデータを出力するとBLOBバッファエラーになる場合、
この値を増やすことによって解決いたしますが、
値を増やす事で消費するメモリも多くなります。
(通常はデフォルト値でかまいません。)

例えば、値を2倍程度に増やしていただいき、再度試していただけますでしょうか。
(出力件数に変化がない場合は、効果はないと思われます。)

上記操作を行っていただいても解決しない場合は、
誠に申し訳ないのですが、Object BrowserVer.7上の制限として
何卒ご理解頂けますでしょうか。

よろしくお願いいたします。
いつもお世話になっております。

ご質問です。
SIObjectBrowserER、SIObjectBrowserでは、データの
入っているテーブルを変更した場合、
一旦、何処かにデータを退避して、テーブル変更後に
そのデータを変更したテーブルに戻してくれるのですか??
それともデータは破棄されてしまうのですか?

SIObjectBrowserには、オプションの中にデータの退避
という項目があって出来そうなのですが、SIObjectBrowserER
には、その項目がありません。

確か、ERWinではデータを退避させておいて、テーブル
変更後に元のテーブルに戻してくれたと思います。

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

データ退避テーブルについては、OB8からの機能ですが、
OBERには実装されておりません。
次回バージョンアップで検討させていただきます。

直接レコードを数件か登録したいのですができません。
えんぴつのボタンを押したら『この結果セットには書き込みできません』
とでてしまいます。後プラスからデータの再起動までは選択できない形に
なっています。
すみません。初めて使うもので・・・
こんにちは
後迫@SIです。

Object Browserのバージョン7にて、
過去に同様の問合わせがありました。

このエラーは
WHERE条件をつけたSELECT結果やグループ化したSELECT結果に
書き込みしようとすると発生いたします。

対応策としては、
①もし、データタブでWHERE条件をかけているのであれば、大文字で記述する
②オプションにて「データ編集時の自動COMMITを行わない」のチェックボックスをはずす
があります。試していただけますでしょうか。
①もし、データタブでWHERE条件をかけているのであれば、大文字で記述する
 ○WHERE条件はなにも書いていません。
②オプションにて「データ編集時の自動COMMITを行わない」のチェックボックスをはずす
があります。試していただけますでしょうか。
 ○これもはずしています。

ほかに手はありますでしょうか?
こんばんは
後迫@SIです。

弊社で検証したいと思いますので、
テーブルのスクリプト(CREATE TABLE)文を送っていただけますでしょうか?

よろしくお願いいたします。
試用させていただいているのですが、
エクスポート時に保存先をドライブ直下を指定するとエラーが出ます。
ちなみに、保存先をc:test.dmpのように指定すると大丈夫でした。

================================以下ログ==================================
Export: Release 8.0.5.0.0 - Production on 木 May 8 16:19:3 2003

(c) Copyright 1998 Oracle Corporation. All rights reserved.


接続: Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production

EXP-00028: 書き込みのためにC:\\test.dmpをオープンできません。
EXP-00222:
システム・エラー・メッセージ 2
System error message: No such file or directory

エクスポートするファイル: EXPDAT.DMP >
EXP-00030: 読み込み中に予期しないファイルの終わり(eof)が見つかりました。
EXP-00222:
システム・エラー・メッセージ 9
System error message: Bad file descriptor

EXP-00000: エラーが発生したためエクスポートを終了します。
しま さん、こんにちは。

>EXP-00028: 書き込みのためにC:\\test.dmpをオープンできません。
↑
ここ!
直下を指定した場合の'\'マーク処理の初歩的ミスですね。
バグと認識されてなかったらと思って再度書き込みます。
c:\test.dmp のように指定しても、EXP80の中ではC:\\test.dmpのように処理されます。
こんばんは
後迫@SIです。

弊社で試したところ、「C:\TEST.DMP」の設定で
ドライブ直下にエクスポートファイルを出力する事ができました。

大変お手数ですが、
以下の環境情報を添えてサポートまでメールしていただけますでしょうか。

①クライアントのOS
②サーバのOS、Oracleバージョン
③オプションタブを開いている状態のエクスポート設定画面のスクリーンショット
④ドライブ直下以外で設定し、エクスポートした場合はエラーにならないでしょうか?

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

OBサポートにて追加情報をいただき、
弊社で現象を再現いたしました。
クライアントがWindows98の場合におきる不具合のようです。

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

デバッグ時に変数の中身を確認したいのですが、
表示エリアが消えて無くなってしまいました。
デバッグウィンドウは3分割されていましたが、
下の2分割が出てきません。
分割サイズの変更もできません。
どうすれば直るでしょうか?
こんばんは
後迫@SIです。

レジストリに格納されている
OBのウィンドウ記憶情報が不正になってしまっているようです。

弊社にて検証したいと思いますので、
①ObjectBrowserのバージョン
②クライアントのWindowsバージョン
をサポートまで連絡していただけますでしょうか。

お手数ですが、どうぞよろしくお願いいたします。
oberを試用しています。
社員テーブルの所属コード←部門コードの部門コードというリレーションシップを引きたい場合、どのように操作すればできるのでしょうか?
今は、社員テーブルに「部門コード(FK)」というリレーションが作成され、社員テーブルに無駄なカラムも作成されてしまいます(主キーとして)。

社員テーブルの部門コード、部門コードの部門コードのように定義しないと、リレーションが正しく作成されないでしょうか。

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

お問い合わせの件ですが
以下の手順となります。

①まず、既に定義されている社員テーブルの所属コードは削除します。
②リレーションをはり、社員テーブルの部門コード、部門コードの部門コードにします。
③社員テーブルの部門コードを所属コードに名称変更します。

また、社員テーブルの所属コードを主キーにしたくない場合は、
非依存型リレーションシップをはっていただけますでしょうか。

よろしくお願いいたします。
デバック実行を行った際の変数に入っている値の参照の仕方について教えてください。
PROCEDURE部の中でインスタンスを生成(new関数を使用)し、生成されたインスタンスのメソッドでレコードの更新等を行おうとしています。
メソッドの中までトレースはできるのですが、変数の値が参照できません。
デバック実行画面の下部の値欄に「変数名が正しくないか、現フレームから参照できません」となってしまいます。
メソッド内の変数については参照できないのでしょうか?
こんにちは
後迫@SIです。

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

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

説明不足ですいません。
以下のコードを書いてトレース実行をした場合、
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;
/

まさ さん、こんにちは。

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

この辺は、海外のオラクルツールのPL/SQLデバッグ
機能はすごい!です。
こんばんは
後迫@SIです。

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

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

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

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

function func1(a,b,c) の中で function func2(x, y) を呼び出しているときに

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

こういう場合もだめなんでしょうか?
こんにちは
後迫@SIです。

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

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

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

よろしくお願いいたします。
投稿No.1043
スクリプト実行について
と同様の現象が起こっています。

スクリプト実行の右側のウィンドウでファイルをダブルクリックしたところタスクは発生しませんがプロセスが発生しロックしているような状態でした。
当方、win200を使用しており、.sqlをダブルクリックするとノートパットではないテキストエディターを使用しております。
ためしに.sqlの設定をノートパットに変更してみたところプロセスは実行されましたがロックはかかりませんでした。(ノートパットはそういうものですが、、)

以上、蛇足かもしれませんがご参考になればと思います。

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

追加情報をいただきありがとうございます。
次回バージョンアップで修正いたしますので、
よろしくお願いいたします。