■SI Object Browser 掲示板


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

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

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

SI Object Browser for Oracle Ver.11 を、
SI Object Browser for Oracle Ver.12 (Ver.12.0.1.0)
にバージョンアップしたところ、以下のSQL文が実行できなくなりました。

◆OB11で動作していたSQL文
--------------------------------
SELECT
parent_key1
,parent_key2
FROM
test_table
WHERE
key1 = :key1_value
AND
key2 = :key2_value
-----
UNION
-----
SELECT
:key1_value
,:key2_value
FROM
DUAL

※テーブル項目の型は全てVARCHAR2
--------------------------------

パラメータに、

:key1_value 10000001
:key2_value 1.1

の値を指定して実行すると、
OB11では正常に動作していましたが、
OB12で実行すると「ORA-12704 キャラクタ・セットが一致しません」の
エラーが発生して動作しません。

いろいろ試行錯誤したところ、上のSQL文は、
パラメータの型を明示的に指定してやると正常動作するようです。

◆OB12で動作させるために修正したSQL文
--------------------------------
SELECT
parent_key1
,parent_key2
FROM
test_table
WHERE
key1 = TO_CHAR(:key1_value)
AND
key2 = TO_CHAR(:key2_value)
-----
UNION
-----
SELECT
TO_CHAR(:key1_value)
,TO_CHAR(:key2_value)
FROM
DUAL
--------------------------------

OB11では、このようなパラメータの値は、
全て文字列型で扱われていたように見えましたが、
(日付に変換したい場合のみ、TO_DATEを使用して型変換していました)
OB12では、パラメータの型はどのように判断されているのでしょうか?

また、エラーの原因と対応策は分かったのですが、
パラメータの型を指定していないSQL文が大量にあり、
全てを修正するのが困難な状況です。
SQL文を修正せず、OB11と同等に動作させる方法はないでしょうか?

よい方法がありましたら、アドバイスください。
よろしくお願いします。
こんにちは
OBサポートです。

ご連絡が遅くなり、誠に申し訳ございません。

本件につきましては
技術的調査が必要な問題・環境に依存する問題となりますので、
有償保守サービスでの対応となります。
大変申し訳ございませんが掲示板上ではお答えいたしかねます。

・シリアルNO
・保守ダイジェストキー

上記2点をご添付の上、

oob.support@sint.co.jp

までご連絡いただけますでしょうか。