0

検索入力を REST サービスに送信しようとしています。場合によっては、フォーム入力が数字の長い文字列になります (例: 1234567890000000000123456789)。500 エラーが発生しました。何かが文字列を数値に変換しようとしているようです。ソース データベースのデータ型は文字列です。

入力を強制的に文字列として解釈させるクエリ文字列を作成する際にできることはありますか?

このサービスは、ArcGIS サーバーの実装です。

この問題の詳細については、リクエストごとに。

テストのために、サービスのインストールで提供されるクライアント フォームを使用しました (下の図を参照)。

一重引用符と二重引用符、およびフォーム エントリにワイルドカード文字を追加しようとしました。フォームの送信はエラーにはなりませんが、結果が見つかりません。数字を短くしたり ("1234")、英数字を追加したり ("1234A") すると、フォームの送信はエラーになりません。

この問題は、10.1 への最近のアップグレード後に表面化しました。これを既知の問題に関連付ける情報を探しましたが、まだ何も見つかりませんでした。

ここに画像の説明を入力

4

2 に答える 2

0

入力を強制的に文字列として解釈させるには、入力を一重引用符で囲みます (例: '1234567890000000000123456789')。ただし、文字列型のフィールドをクエリする場合は、すべてを囲む必要があります文字列を一重引用符で検索します。その場合、クエリはどれも機能しないはずです。そのため、提供された情報から、正確に何をしていて、何が問題になっているのかを判断するのは少し困難です。詳細やコードを教えてください。Esri のクライアント側 API (JavaScript API など) の 1 つを介して Query オブジェクトで使用している where 句をフォーマットしていますか? その場合、データ型文字列のフィールドの場合、検索テキストを一重引用符で囲む必要があります。たとえば、クエリしているフィールドが「FIELD」と呼ばれる場合、where 句を次のようにフォーマットします。

FIELD = '1234'

or 

FIELD Like '1234%'

ワイルドカード検索用。公開された ArcGIS Server サービス/レイヤーのクエリ フォームにクエリ条件を直接入力しようとしている場合は、上記の例のように、検索を一重引用符で囲む必要があります。

于 2013-12-03T03:05:35.537 に答える