■SI Object Browser 掲示板


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

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

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
CASE文でリテラル返却時の日本語文字の表示不正について 2015/05/18 18:28 OB 3
Object Browser 12.1.3.0(x64)で、CASE文でリテラルとして日本語文字を返した場合に正しく表示されない場合があります。

例1:レコードが返却されない
SELECT
CASE 1 WHEN 1 THEN 'あ' END AS TEST
FROM DUAL

例2:半角文字だと正しく表示される
SELECT
CASE 1 WHEN 1 THEN 'A' END AS TEST
FROM DUAL

例3:全角文字でも特定の記述(WHENを複数とELSEを含む?)で表示されることもある
SELECT
CASE
WHEN 1 = 1 THEN 'あ'
WHEN 2 = 1 THEN 'い'
ELSE 'AB'
END AS TEST
FROM DUAL

例4:DECODE文も同じようにレコードが返却されない
SELECT
DECODE(1, 1, 'あ') AS TEST
FROM DUAL


Object Browser 12.1.1.0(x64)では、いずれも正しく表示されます。
Object Browser 12.1.0.0(x64)では、エラーメッセージボックスが表示されます。
---------------------------
Variable length column [TEST] overflow.
Value length - [2], column maximum length - [1]
---------------------------

メッセージボックスが表示されるならまだしも(それでも困りますが)、レコードが返されないのと同じ結果として表示されてしまうので、結果が間違っていることに気付きづらく非常に困っております。

もし設定の問題でしたら、対応方法を知らせていただきたく思います。

こんにちは
OBサポートです。

ご投稿いただいた日本語文字が正しく表示されない件ですが、
こちらは「SI Object Browser for Oracle」における不具合となります。
ご迷惑をおかけしてしまい誠に申し訳ございません。

回避手段としまして、データベースを接続する際に、
文字コードに「UTF8」を指定していただくことで、
データが表示されることを弊社環境で確認しております。

現状大変申し訳ございませんが、上記対応で事象が解消するか
ご確認いただけますでしょうか。

なお、本件に関しましては、今後のバージョンアップにて改善できるよう
対応リストに追加し、対応方法を検討いたします。

ご不便、ご迷惑をお掛けし、誠に申し訳ございませんが、
何卒よろしくお願い申し上げます。
お世話になります。

ログイン時の文字コードを JA16SJISTILDE と指定していましたので UTF8 に変更したところエラーにならなくなりました。

しかしながら、DBは JA16SJISTILDE を指定して作成しており、ログイン時の文字コードを変更することにより別の問題が発生しないかが気になります。

ログイン時の文字コードはDBの文字コードと異なるものを指定しても問題はないでしょうか。
それとも一時的な回避手段と考えればよいでしょうか。
「UTF8」で接続いただいた場合、
「~」の文字化けが発生する可能性がございますが、
それ以外の動作に影響はございません。

参考:
http://www.shift-the-oracle.com/guidlines.html
(使用するキャラクタセット 全角チルダ(~)の問題)

なお、弊社製品のSI Object Browser for Oracleといたしましては、
接続時の文字コードをDBの文字コードに合わせるのではなく、
基本は「UTF-8」を選択していただくことを推奨しております。
「~」の文字化けが発生した場合のみ、ログオン画面にて文字コードを
「JA16SJISTILDE」に指定する運用をお願いしております。

何卒、よろしくお願い申し上げます。