■SI Object Browser 掲示板


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

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

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

いろいろ試してみたので内容を修正します。

sqlでchr(0)でinsertやupdateしたレコードは
char型でなくても
Object Browserからデータを編集しようとすると
「対象レコードが他のユーザーにより削除されています」とエラーが表示され編集できません。

他の空文字が入っていないレコードは正常に編集できます。

なぜでしょうか?
宜しくお願いします。
こんにちは
後迫@SIです。

このたびは返信が遅くなってしまい大変申し訳ございません。
現象について再現いたしました。

原因につきましてですが、chr(0)の空文字データを
INSERT/UPDATEした場合、
検索できないレコードとなってしまうためのようです。
(内部ではデータ編集時、更新対象のレコードを検索いたしますが、
検索に失敗してしまうため当エラーが発生するようです。)

例えば、以下のSQLでchr(0)のレコードを作成後、
その列をWHERE条件にSELECTしても、1件も抽出することができません。
(SQL*plusでも同様に発生いたします。)

CREATE TABLE TBL(COL CHAR(10))
/
INSERT INTO TBL VALUES(chr(0))
/
SELECT COUNT(*) FROM TBL WHERE COL = chr(0) --1件もヒットしません
/
SELECT COUNT(*) FROM TBL WHERE COL IS NULL  --1件もヒットしません
/

Oracleではchr(0)の空文字はサポートしておらず、
当現象もOracleに依存する問題のため、対応は困難となっております。

お手数ですが、
一度、空文字となっている列をNULLなどにUPDATEしていただくことで
当現象が発生しなくなりますので、そのような対応をお願いできますでしょうか。

また、INSERT/UPDATEする際はchr(0)を使用せず、
NULLでINSERT/UPDATEしていただくなどの対応をお願いできますでしょうか。

ご希望に添うことができず態変申し訳ございませんが、
何卒、よろしくお願いいたします。
空文字は入れないようにしました。

また原因が分かり納得しました。

ご回答ありがとうございました。