奇妙な問題があります。JDE をアップグレードしており、データベース スキーマが変更されています。一部の char 列が nchar 型に変更されています。ただし、一部の検索が機能しなくなっていることがわかりました。これは、SQL Server 2008 データベース全体で一貫していることがわかりました。
私がテストした DB では、ItemNumber 列は char(25) であり、さまざまな長さのコンテンツがあります。
SELECT * FROM TableName WHERE ItemNumber LIKE '%S'
行の束を返します。ただし、列を nchar(25) に変更すると、そのクエリは ItemNumber 値が「S」で終わり、長さが 25 文字の行のみを返すようになるため、末尾のスペースが (おそらく正しく) 取られているように見えます。考慮する - ワイルドカード値を '%S ' に変更すると、「S」で終わる 24 文字の項目番号が検出されます。
明らかに、これは私たちにとってかなりの問題です。JDE で *S 検索が機能しなくなったためです。これは、基礎となるデータベース呼び出しですべての nchar 列をトリミングする必要があるためです。これは既知の問題ですか、それとも変更が必要な設定ですか?
追加情報 これは ERP システムとそのアップグレードの一部であるため、使用される列の種類を制御することも、生成された基になる SQL を変更することもできません。私たちは Oracle との通話をログに記録しましたが、私の知る限り、彼らはこれを見たことがなく、複製することもできません (ただし、どのような状況でこれを行おうとしているのかはわかりません)。他のデータベース/サーバー全体で発生するため、どこかであいまいな設定ではないのではないかと思います。