- - PR -
SQLServer2000のcharindex関数にバグあり?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-23 18:18
いつもお世話になってます。
今、SQL Server 2000 standerdでアプリケーション開発していますが、 charindex関数が不可解な動きをします。 ' 01' 〜 ' 50'(空白2つにゼロ付2桁数値の連続)の文字列の中から、 ' 01'などの文字列の位置をcharindex関数を使ってとろうとしています。 例) select charindex(' 02',' 01 02 03 04 05 06 07 08 09 10',1) で、' 01'は当然文字位置として1が帰ってきますが、' 02'以降は文字位置がずれて 返ってきます。本来、' 02'の文字位置は5のはずですが、結果は4となります。 ためしに空白を'A'などで埋めてテストしてみましたが、文字位置は変わらないはずなのに 結果は正しく5と返ってきました。 これはバグでしょうか?何かご存知の方おられませんか? | ||||||||
|
投稿日時: 2004-04-23 18:42
スペースが入っていません?
| ||||||||
|
投稿日時: 2004-04-23 21:51
いろんなパターンで試してみましたが、空白とかの問題ではなさそうでした。
お手数ですが、クエリアナライザで流してみてもらえませんか? なんか気持ち悪いの私だけ? select 'TEST1', charindex('AA01','AA01AA02AA03',1) --←1が正解。これはOK select 'TEST2', charindex('AA02','A01AA02AA03',1) --←4が正解。これもOK select 'TEST3', charindex('AA02','AA01AA02AA03',1) --←5が正解?なのに4が返る select 'TEST4', charindex('AA02','AAA01AA02AA03',1) --←6が正解?なのに5が返る select 'TEST5', charindex('AA02','AAAA01AA02AA03',1) --←7が正解?なのに6が返る select 'TEST6', charindex('AA02','AA01AAA02AA03',1) --←6が正解?なのに7が返る select 'TEST7', charindex('A02','AA01AA02AA03',1) --←6が正解。これもOK [ メッセージ編集済み 編集者: maru 編集日時 2004-04-23 22:13 ] | ||||||||
|
投稿日時: 2004-04-24 10:45
SQL 2000 Serverで試すと全て正解が帰ってきます。 SQL 7.0 Serverで試すと仰るとおりの結果が出ます。 やはり、7.0のバグかな。 MSらしく知らん顔して新バージョンでバグフィクスかな? | ||||||||
|
投稿日時: 2004-04-24 11:05
すみません。
ちなみにSQL2000,SQL7.0共にEnterprise Editionでした。 | ||||||||
|
投稿日時: 2004-04-24 11:11
Microsoft SQL Server 2000 - 8.00.818 (Intel X86)
May 31 2003 16:08:15 Copyright (c) 1988-2003 Microsoft Corporation Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 4) Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 4) Microsoft SQL Server 2000 - 8.00.818 (Intel X86) May 31 2003 16:08:15 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: ) 上記3つは正常。 Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 4) 製品版(サービスパックなし)では同様の結果でした。 バグっぽいですね。 * SPのあたっていない開発用サーバを見つけてしまった(苦笑) [FIX] 組み込みの文字列関数が間違った結果を返す http://support.microsoft.com/default.aspx?scid=kb;ja;308113&Product=sqlserverJPN *サポート情報のURLを追記 [ メッセージ編集済み 編集者: いのつち 編集日時 2004-04-24 11:19 ] | ||||||||
|
投稿日時: 2004-04-26 10:54
こんにちは。
sp3を適用したら正しく処理されるようになりました。 お騒がせしました。 |
1