- - PR -
定数をselectしたときの文字サイズ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-27 17:18
現在顧客向けの会員管理システムを作っているのですが SQLで詰まっています。 定数項目を次のようにselectしたときに SELECT '1' FROM test resultSetに入る文字サイズが あるoracleインスタンス(環境A)では1バイト、 別のインスタンス(環境B)では32バイトとなりました。 取れた項目を出してみると環境Bでは 1の後に半角スペースが31個ついています。 なぜこのような違いが出るのか分かりません。 ためしに環境Bの方でtrim関数をかけてみると resultSetに入る文字サイズは1バイトとなりました。 SELECT trim('1') FROM test SQLはJavaのJDBC経由で 同じサーバーの同じOracleに同じプログラムから 同じSQL文を別のoracleインスタンスに対して発行しています。 それらの設定に違いがあると思い、両環境でshow parameterして それをdiffした結果は以下の通りです。 環境B> <環境A < circuits integer 21 > circuits integer 27 < cursor_sharing string EXACT < cursor_space_for_time boolean FALSE > cursor_sharing string SIMILAR > cursor_space_for_time boolean TRUE < db_block_size integer 4096 > db_block_size integer 8192 < db_cache_size big integer 4194304 > db_cache_size big integer 16777216 < db_file_multiblock_read_count integer 8 > db_file_multiblock_read_count integer 10 < dispatchers string (PROTOCOL=TCP)(SER=MODOSE), (P < distributed_transactions integer 5 < dml_locks integer 92 > dispatchers string (PROTOCOL=TCP)(SER=MODOSE) > distributed_transactions integer 7 > dml_locks integer 116 < enqueue_resources integer 312 > enqueue_resources integer 336 < hash_area_size integer 1048576 > hash_area_size integer 131072 < large_pool_size string 1048576 > large_pool_size string 4194304 < log_buffer integer 524288 > log_buffer integer 1048576 < max_dispatchers integer 4 > max_dispatchers integer 3 < max_shared_servers integer 15 > max_shared_servers integer 1 < mts_circuits integer 21 < mts_dispatchers string (PROTOCOL=TCP)(SER=MODOSE), (P > mts_circuits integer 27 > mts_dispatchers string (PROTOCOL=TCP)(SER=MODOSE) < mts_max_dispatchers integer 4 > mts_max_dispatchers integer 3 < mts_max_servers integer 15 > mts_max_servers integer 1 < mts_sessions integer 16 > mts_sessions integer 22 < pga_aggregate_target big integer 0 > pga_aggregate_target big integer 16777216 < processes integer 15 > processes integer 20 < sessions integer 21 > sessions integer 27 < sga_max_size big integer 25985940 > sga_max_size big integer 43287524 < shared_pool_reserved_size big integer 209715 > shared_pool_size big integer 8388608 < shared_pool_size big integer 4194304 > shared_server_sessions integer 22 < shared_server_sessions integer 16 > shared_pool_reserved_size big integer 419430 < sort_area_size integer 524288 > sort_area_size integer 65536 < timed_statistics boolean TRUE > timed_statistics boolean FALSE < transactions integer 23 > transactions integer 29 < workarea_size_policy string MANUAL > workarea_size_policy string AUTO この現象について何かご存知の方、いらっしゃいましたら ご意見よろしくお願いします。 |
|
投稿日時: 2004-08-30 13:56
自己レスです。
オラクルサポートセンター http://support.oracle.co.jp/ に「cursor_sharing=forceまたはsimilarの場合、JDBC-Thinドライバでリテラルにスペース文字が付加される」という不具合が報告されていました 文章番号(76146)(ライセンス契約により内容の転載を取りやめます。) とのことでした。 参照していただいた方、ありがとうございます。 [ メッセージ編集済み 編集者: キラ 編集日時 2004-08-30 15:48 ] |
|
投稿日時: 2004-08-30 15:24
上の投稿に、契約者のみ公開である情報が含まれていたため、編集をお願いしました。[ メッセージ編集済み 編集者: Jitta 編集日時 2004-08-30 18:00 ] |
1