0
Oracle Locatorでカスタム関数を使用しています。この関数をcx_Oracle内で使用して、GeoJSONでSDO_Geometryを変換します。cx_Oracle内でカスタム関数を呼び出します。
import cx_Oracle
import json
connection = cx_Oracle.Connection("TEST_3D/[email protected]:1521/sdetest")
cursor = connection.cursor()
cursor.execute("""SELECT a.id AS building_nr, c.Geometry AS geometry, d.Classname AS polygon_typ FROM building a, THEMATIC_SURFACE b, SURFACE_GEOMETRY c, OBJECTCLASS d WHERE a.grid_id_400 = 4158 AND a.id = b.BUILDING_ID AND b.LOD2_MULTI_SURFACE_ID = c.ROOT_ID AND c.GEOMETRY IS NOT NULL AND b.OBJECTCLASS_ID = d.ID""")
obj = cursor.fetchone()
obj = obj[1]
print obj
result = cursor.callfunc('sdo2geojson', cx_Oracle.OBJECT, [obj])
私のオブジェクトは、cx_Oracle.OBJECTのようになります。 この関数はSQLdeveloper内部で動作しています。
私は、私は次のエラーを取得する関数を呼び出す
: cx_Oracle.NotSupportedError:Variable_TypeByValue():未処理のデータ・タイプcx_Orac le.OBJECTVAR間違って何を - 私???
私はまだ動作していません。それは書かれている_ "InterfaceError:バインド変数に関連付けられていないオブジェクト型" _何が間違っていますか? – Moehre
これは制限です。 cursor.var()を使用して変数を作成し、それを戻り値の型として使用できます。そこにオブジェクト型を渡すことは可能でなければなりませんが、現在サポートされていません。 –