■SI Object Browser 掲示板


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

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

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
OBサポートです。
本件、情報提供いただき誠にありがとうございます。

■SI Object Browserの想定するデータ型
お問い合わせ頂いた事象につきまして、弊社環境でも再現を確認いたしました。

SI Object Browserのオブジェクト比較においては
PotgreSQLが既定で定義するデータ型を想定しているため
create typeによって新規作成したデータ型を同じ型として判定できていないことが原因と考えられます。
⇒厳密には、ご指摘いただいたようにoidの異なる引数について正しく比較を行えていないことが原因と考えられます。

例)
比較先1:
複合型:complex_sampleという名前でtypeオブジェクトを作成

比較先2:
比較先1と同名・同じソースでcomplex_sampleを作成

⇒それぞれの環境でcomplex_sampleを引数にもつ同じソースの関数を生成し、比較を行うと
比較先1と比較先2で異なるoidを持つ引数(引数の異なる関数)として比較される


本事象につきましては、
現状製品の内部動作的に回避ができないため、
同一のfunctionについても異なるfunctionとして差分が表示されてしまいます。

大変ご不便ご迷惑をおかけしてしまい、誠に申し訳ありません。
本件、開発に情報連携した上で、動作の改善を検討させていただきます。

何卒よろしくお願い申し上げます。
テーブルの複製、およびデータ取込について質問です。
初めてこちらの掲示板を使用して質問します。
至らぬ点等あるかもしれませんが、解決策についてご教示いただければ幸いです。


【Object Browser情報】
OBの製品名 :SI Object Browser for Oracle 21
OBバージョン :21.1.0.0
OBエディション :通常版

●要望
①既存テーブルのバックアップ作成
②既存テーブルのコピーを作成、既存テーブルと入れ替えて使用

例)実績結果(テーブル名)
①テーブルのコピー
②テーブルの貼り付け
③実績結果の名前を変更「実績結果_BK」
④貼り付けしたテーブルの名前を「実績結果」として使用したい。

●要望②
既存テーブルのデータ件数が約50,000レコードあります。
バックアップ後に入れ替えたテーブルで項目の型を変更したいです。
既存データがあると型の変更ができないので、中身を一度csv等で出力して退避、
型の変換後にcsvデータを取り込みたいと思っています。

Object Browserで上記のような対応はできますでしょうか。
または、SQLplus等でやる場合はどのような対応をすればできますでしょうか。

●対応案
Object Browser内の機能のExport、Import、ロードを使用しようかと思いましたが、
フォルダ内に使用ツールが見当たらずうまく出来ませんでした。
(expdp.exe、impdp.exe、sqlldr.exe)

●確認したフォルダ
C:\app\client\Administrator\product\12.2.0\client_1\bin

●現状のテーブルサンプル

CREATE TABLE [スキーマ名].実績結果
(
実績NO NUMBER(6,0) NOT NULL,
名称ID VARCHAR2(10) NOT NULL,
値 VARCHAR2(10) NOT NULL, ※←「値」項目の型を変更したい
日時 DATE NOT NULL,
CONSTRAINT PK_実績結果 PRIMARY KEY (実績NO, 名称ID) USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE USERS
STORAGE(INITIAL 904K NEXT 16K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
NOLOGGING
ENABLE,
CONSTRAINT FK_実績結果 FOREIGN KEY (実績NO) REFERENCES [スキーマ名].実績テーブル (実績NO) ON DELETE CASCADE,
CONSTRAINT FK_実績結果_名称 FOREIGN KEY (名称ID) REFERENCES [スキーマ名].名称マスタ (名称ID) ON DELETE CASCADE
)
ご回答ありがとうございます。

比較したDBではFUNCTIONのソースコードに差異はありませんでした。やはりオブジェクト比較結果は差異有(補足①で片方の引数が結果異なる)なので調べてみましたが、ソースコードの引数に複合型を使用していると、比較がうまく機能していないのではないかと思います。

FUNCTIONの引数に指定している複合型のオブジェクトは、pg_typeに個別で登録されたもので、比較した環境では、oidがそれぞれ異なっていました。ObjectBrowserの内部仕様はわかりませんが、補足①の引数の名称取得に比較先1の情報を使って比較2の名称を取得したために、比較結果が異なり、差異ありと判断しているのではないかと推測しております。

確認して頂ければと思います。
OBサポートです。

■オブジェクト比較の補足欄について
マニュアル等に明確な記載がされておらず、誠に申し訳ありません。
SI Object Browserのオブジェクト比較の補足欄は
通常下記項目を表示いたします。

・補足①
引数の型

・補足②
戻り値の型

何卒よろしくお願い申し上げます。
SI Object Browser for Postgres 22で、オブジェクト比較機能について質問です。

オブジェクト比較結果のうち一部のFUNCTIONについて、それぞれのDBでソースコードが同じでも比較結果が比較1のみ、比較2のみ存在すると扱われています。
比較結果の補足①の内容が異なるために起きているのではないかと思いますが、補足①、補足②についてヘルプに具体的な説明がないので理由がわからない状況です。

補足①、補足②に表示される内容について分かる方がいらっしゃいましたら教えて頂けないでしょうか。
OBサポートです。
ご回答が大変遅くなってしまい、誠に申し訳ありません。

■SI Object Browserがサポートするデータ型について
誠に恐れ入りますが、SI Object Browserではdaterange型を含む一部のデータ型に対応しておらず、
テーブル > データタブによるデータ表示時に該当のエラーが表示されます。

大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。
何卒宜しくお願い致します。
意図しない属性が追加される事と、オプションによる制御が行えない事は、まだ納得できたのですが、定義済みのリレーションが勝手に置き換わるのは、不具合ではないでしょうか。
勝手に変わった定義を検出する工数が、週に数時間、余分にかかっています。
対応の検討をお願いします。
SI Object Browser for Postgresを使っています。

テーブルAに項目Bがあります。
項目Bの型がdaterangeです。
テーブルAに登録したデータを確認するとき、下記のエラーが起きます。
"型[3912]を記述できません。Complex type must be an array,composite or enum type."

OBサポートです。
ご回答が大変遅くなってしまい、誠に申し訳ありません。

■リレーション作成時にFKが追加される動作について
SI Object Browser ERでは、
主キー属性を持つエンティティ(親エンティティ)と他のエンティティ(子エンティティ)のリレーションを作成する際には、
主キー列を参照する同名の属性を子エンティティ側に自動で作成する動作仕様となります。
⇒表記揺れの防止を想定する動作となります。

誠に恐れ入りますが、本動作については現状オプションによる制御が行えません。

上記ケースでリレーションを作成した際にもし意図しない属性が追加される場合には、
・リレーションシップ画面からの使用キーの変更
・子エンティティ側で自動作成された属性を削除
などの運用をお願いできますと幸いです。

大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。
何卒よろしくお願い申し上げます。

SI Object Browser ERで作業していると、テーブル定義に、FKカラムが勝手に追加される事があります。
新規にリレーションを追加した時に、FKカラムが追加されるなら、まだ理解できるのですが、ユニークキーとは関係の無い定義変更をしていて、気づくと、思いもよらない別のテーブルにFKカラムが追加され、せっかくリレーション設定していたカラムが勝手に置き換わっています。

どんな条件でFKが追加されるか、再現の仕方はわかりませんが、論理名が異なるカラム同士をリレーションしていると、勝手にFKが追加され事があるようです。
知らないうちにFKが追加されるので、もし気づかないと致命的な定義ミスに繋がります。

勝手にFKを追加しないようなオプションがあれば教えてください。