■SI ObjectBrowser掲示板

ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!discussion
ユーザーのみなさま同士で教え合ったり、アドバイスしたりする暖かい交流の場にしたいと思っていますので、相互協力をよろしくお願いします。なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

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




For Update Nowait を利用した日付項目取得時 2018/10/16 15:04:59
white
■環境情報
Object Browser for Oracle:14.0.0.0
OracleDataBase:11.2
ClientOS:Win7
OracleClient:11.2

■確認事項
For Update Nowait を利用したテーブル結合を行ったSelect文を用いて
複数の空の日付項目を取得した場合にNullで取得するはずの項目に意図しない値が出力される事象が発生いたしました。
また、SQLPlusを用いて確認したところ異常な値は返ってきませんでした。
本事象がObject Browser上の問題であるか確認をお願いします。
また、Object Browserを用いて正しい値を取得できる方法などありましたら情報を提示していただければと思います。
 ※下記に再現用のSQLを記載しております。

■再現用SQL
CREATE TABLE DATE_TEST
(
KEY_1 CHAR(3) NOT NULL,
DATE_1 DATE
)
/
CREATE TABLE DATE_TEST_JOIN
(
KEY_1 CHAR(3),
SUB_KEY CHAR(1),
DATE_JOIN DATE
)
/
INSERT INTO DATE_TEST A (A.KEY_1) VALUES ('001')
/
INSERT INTO DATE_TEST_JOIN B (B.KEY_1, B.SUB_KEY) VALUES ('001','1')
/
INSERT INTO DATE_TEST_JOIN B (B.KEY_1, B.SUB_KEY) VALUES ('001','2')
/

select B.DATE_JOIN from DATE_TEST A, DATE_TEST_JOIN B where A.KEY_1 = B.KEY_1 For Update Nowait

結果
1レコード目:Null
2レコード目:0001/01/01
※2レコード目に意図しない値が出力されます
元の文章を引用して返信

Re: For Update Nowait を利用した日付項 2018/10/17 11:32:28
OBサポート           oob.support@sint.co.jp
こんにちは。
OBサポートです。

お問い合わせいただいた件につきまして、弊社環境にて再現することを確認いたしました。

・SELECT文でテーブルを結合している
・SELECT文でFOR UPDATE NOWAIT句を指定している
・DATE型のカラムをSELECTしている
・SELECTの結果が複数行かつNULL値のフィールドのみとなっている

を満たすとき、SI Object Browser上で2行目以降のDATE型のNULL値が
「0001/01/01」として表示される不具合となります。

本現象につきましては、NULLでないフィールドが1つでも存在すれば
発生しないものと存じますので、お手数ですが値の存在するカラムを
SELECT句に含めていただきますようお願いいたします。

例)
select A.KEY_1, B.SUB_KEY, B.DATE_JOIN from DATE_TEST A, DATE_TEST_JOIN B where A.KEY_1 = B.KEY_1 For Update Nowait

また、本件は開発側に伝えさせていただき、今後のバージョンアップ時に
対応を検討してまいります。

ご不便をおかけいたしますが、何卒、よろしくお願い申し上げます。

元の文章を引用して返信