■SI Object Browser 掲示板


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

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

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
ストアドプログラムの実行で、
タイプがOBJECTとなっている引数の値の指定の仕方が分かりません。
どなたかご存知ありませんでしょうか。
可能ですよ 2006/06/16 13:11 OBER
まるにんさん、こんにちは。unjiです。

結論から書くと実現可能です。

やり方としては、

[データベース]→[データベース同期]→[全般]で、
デフォルトの同期方法を「データベース変更(モデル優先)」
比較対象を「モデルに存在するオブジェクトのみ比較する」
を選択し、[開始]を押下すればできますよ。

なお6月15日と比較して6月16日に存在していないテーブルがある場合は、
比較対象を「指定したユーザーの全オブジェクトと比較する」
を選択しないとダメですけど。

差分がEXTENTの情報等にもかかわるのであれば、
[データベースオプション]で変更してください。

ですので、結局のところ「比較対象」を変えて2回同期をかけるとよいと思いますよ。

なお、注意点として
私が今まで掲示板に別掲しているとおり、
・「一時表」の同期が正常に作動せず差分が出てしまう。
・表やインデックスのINITIAL EXTENTのサイズが巨大だと、
 DBのEXTENTサイズを正常に取得できずに差分が出てしまう。
・Oracle10gの場合、DROP文にPURGEオプションがつけられないので、
 RecycleBinの情報がDB上にゴミとして残ってしまう。

ということは頭の片隅に置いておいてください。

alter table文 2006/06/16 11:03 OBER
はじめて投稿させていただきます。

6月15日と6月16日のOBERが存在しています。この2つのedmファイルには、
差分があり、6月15日のOBERからSQL文を発行して、インスタンスに
テーブルを作成しました。
その後、6月16日のOBERからALTER TABLE文を発行して、6月15日のテーブルに
変更を加えたいと考えています。

上記の内容は、OBERで実現可能でしょうか?




こんにちは。神山@SIです。

>OB9から初期化パラメータを変更した際、SCOPE(変更適用範囲)は
>いずれのどれになるのでしょうか?
>①SPFILE
>②MEMORY
>③BOTH

SCOPEにつきましては、明示的に記述を行っていませんので、③のBOTHとなっております。

>また、これら3つのSCOPEオプションを使い分けることは可能でしょうか?

誠に申し訳ございませんが、使い分ける機能がご用意できておりません。
SQL*Plusや、SQL実行にて、SCOPEを明示的に記述し、実行いただけますでしょうか。

[anyone]
>エンティティの色を変えようと「右クリック-メニュー-色・フォントの変更」選択すると
>「モジュール'ntdll.dll'のアドレス 77F87954 でアドレス 0040498D に対する書き込み違反がおきました。」のエラーが発生。

私もこのエラー出て、ERがフリーズし、タスクマネージャーから終了させました
再現性あります
ERは、Version.3.0.2.15
環境は、win2k sp4です
可能ですよ 2006/06/14 19:25 OBER
[そら]
>最初にER図を作成するとき、Oracleに接続し、
>テーブルのみを選択してリバースエンジニアリングをかけたのですが、
>後からビューも必要だということが分かり、
>今度はビューのみをリバースエンジニアリングで
>追加したいのですが、やり方が分からず悩んでいます。
>
>これまで作成したテーブル間のER図はそのままで、
>ビューだけをリバースで持ってくる方法があれば教えてください。
>どうぞよろしくお願いします。

こんばんは、unjiです。

OracleDB上にあるViewをOBER上に取り込みたい。
そして、以前に取り込んだテーブルの情報は残したままで
追加したいということですよね?
(別の意味でしたら、返信していただければ回答できる限りします)

上記の場合、リバースエンジニアリングではできません。
リバースエンジニアリングの場合、テーブルの情報がばっさりと消えるかと思います。
ので、データベース同期を行い、
比較対象:「指定したユーザの全オブジェクトと比較する」を選択
デフォルトの同期方法:「モデル変更(データベース優先)」を選択

で同期を実施すると、差分の情報を反映することができます。
テーブルの情報を変更していなければ、Viewの情報を取り込むことができますよ。
テーブルの情報を変更している場合は、反映するかしないかは、
個別に選択してください。

これで、Viewの情報が取り込めますよ。
最初にER図を作成するとき、Oracleに接続し、
テーブルのみを選択してリバースエンジニアリングをかけたのですが、
後からビューも必要だということが分かり、
今度はビューのみをリバースエンジニアリングで
追加したいのですが、やり方が分からず悩んでいます。

これまで作成したテーブル間のER図はそのままで、
ビューだけをリバースで持ってくる方法があれば教えてください。
どうぞよろしくお願いします。
OBERでDB同期を行なう際に出力されるDDL文のうち
DROP文にPURGEオプションを付与する方法はないのでしょうか?

Oracle10.1.0に対応ということになってますし、
OB9ではPURGEオプションがあるのですが、
OBERにおいては見つからないのですが。
テーブルを作成する際に、INITIAL EXTENT情報等を入力してから、
一時表としてDBを作成した場合、
その後、DB同期を行なうと、
INITIAL EXTENTの情報等が差分として表示されます。
(インデックスについても同様)

※そもそも一時表のEXTENT情報等が
 差分として現れるのは変だと思います。

そのまま同期を行なってDBへ反映を行なう場合に、
特にインデックスのDDLについては、
[ORA-14451: この機能は一時表ではサポートされていません。]
のエラーとなります。

確かにデータベースオプションでエクステント情報の出力をはずせば、
一致とみなされますが、
通常のテーブルも大量(500テーブル程度)にあり、
かつ一時表も大量に存在している状態(100テーブル程度)で
DB同期を行なう際に、エクステントの情報もきちんと反映されているのかを
確認したりしたいため、チェックをはずしての確認は意味をなしません。

みなさんはどのように対応していらっしゃるのでしょうか?
OB9から初期化パラメータを変更した際、SCOPE(変更適用範囲)は
いずれのどれになるのでしょうか?
①SPFILE
②MEMORY
③BOTH
また、これら3つのSCOPEオプションを使い分けることは可能でしょうか?
よろしくお願いいたします。