0

SquirrelSQLを使用して、Netezza データベースで SQL クエリを作成および実行しています。Netezza の空間機能 (基本的に PostGIS の機能と同じ) を使用して、クエリを実行し、ジオメトリを含む単一の結果を返しました。参考までに、クエリは次のとおりです。

SELECT t.SHAPE
FROM (SELECT * FROM OS_AB_PLUS..E12_ADDRESSBASE WHERE POSTCODE = 'RH1 6NE' 
AND PAO_START_NUMBER = '14') as a, OS_TOPO..TOPOGRAPHICAREA as t
WHERE inza..ST_Within(a.shape, t.shape) = TRUE

私の問題は、 Well-Known Text (WKT)として表されるポリゴン座標を含む必要があるジオメトリ フィールドが、代わりに次のようになることです。

g¹ AË Affff¬0AÍÌÌÌî0AÒ 3333Ê AÍÌÌÌî0A» Aë0Afffæ» AffffÒ0A¹ AÒ0A333³¹ A3333¿0AŒ AffffÀ0AÍÌÌLŒ Affff¬0AË A¯0AëQ8Ê A3333í0A3333Ê AÍÌÌÌî0A

VARCHAR列のエンコーディングを指定するSquirrelSQLのどこにも見つからないようです.Aginity(別のSQLクライアント)でエンコーディングの問題なしに列が返されるのを見てきました. 続行する方法についての提案は大歓迎です。

4

1 に答える 1

3

私の問題は、エンコーディングとはまったく関係がないことがわかりました。ST_AsTextが select ステートメントで使用されている場合にのみ、PostGIS に似たデータベース内の人間が判読できるバージョンのジオメトリが返されます。したがって、私のSQLクエリは次のようになります。

SELECT inza..ST_AsText(t.SHAPE)
FROM (SELECT * FROM OS_AB_PLUS..E12_ADDRESSBASE WHERE POSTCODE = 'RH1 6NE' 
AND PAO_START_NUMBER = '14') as a, OS_TOPO..TOPOGRAPHICAREA as t
WHERE inza..ST_Within(a.shape, t.shape) = TRUE

どちらが返されます。意図した通り:

POLYGON ((526696.15 148931.9, 526703.94 148932.34, 526703.8 148935.2, 526705.5 148935.3, 526705.4 148937.8, 526695.9 148937.35, 526696.15 148931.9))
于 2013-03-12T09:58:58.543 に答える