2017-01-04 84 views
1

SAP HANA DB /テーブル接続を使用して、ArcGIS for Desktopでクエリレイヤーを追加しています。私が使用したいテーブルには、経度と緯度フィールドが文字列データ型として格納されています。これらのフィールドを10進数のデータ型として変換して、XYデータを表示できるようにするために、このレイヤーのクエリを作成したいと思います。SAP HANAのTO_DECIMAL文字列からの変換

私のフィールド値の例は、経度である:-117.619193と緯度:33.453381

スローされるエラーであるGeneral error; 319 decimal scale specifier is out of range: 6:(0-3)::S1000

クエリ:
select "JOBID", TO_DECIMAL(LONGITUDE,3,6) AS "LONG_DEC", TO_DECIMAL(LATTITUDE,3,6) AS "LAT_DEC" from "_SYS_BIC"."SEU.GD.LM/CA_KT_TICKETSTATUS"

Iは3進識別子を変更します私の精度は正しいとは言えません。小数点以下6桁の精度を維持するためにこれをどのように変更する必要がありますか?

答えて

2

TO_DECIMAL() functionのパラメータを誤解しているようです。あなたは3桁の精度と6桁の規模を求めている

TO_DECIMAL(LONGITUDE,3,6) 

TO_DECIMAL (<value> [, <precision>, <scale>]) 

select 
     TO_DECIMAL(-117.619193 , 6, 3) AS "LONG_DEC" 
     , TO_DECIMAL(33.453381 , 6, 3) AS "LAT_DEC" 
from dummy; 

LONG_DEC LAT_DEC 
-117.619 33.453 
0

は、経度/緯度の通常の意味を考えると-180と180/-90と90の間の値であること、そしてあなたが維持したいと考える:私はあなたが意図したものと仮定し

は逆の設定でした(小数点以下)は、小数点以下6桁の精度、私はあなたが次の文を必要と推測:

select "JOBID", 
    TO_DECIMAL(LONGITUDE,9,6) AS "LONG_DEC", 
    TO_DECIMAL (LATTITUDE,8,6) AS "LAT_DEC" 
from "_SYS_BIC"."SEU.GD.LM/CA_KT_TICKETSTATUS 

TO_DECIMAL(LATTITUDE、8,6)小数点以下whereof 6、8ヶ所でターゲット小数点タイプを意味woudポイント。

緯度が絶対値> 1000、緯度が> 100の値はエラーにつながることに注意してください。あまり制限的でなく、アプリケーションレイヤーで間違った値をキャッチしたい場合は、より高い精度を使用したい場合があります。 to_decimal(LONGITUDE、12,6)。

関連する問題