Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да конвертирате SDO_GEOMTRY в GeoJSON

Това използва (все още неиздадена) версия на cx_Oracle, която поддържа обвързване на обекти и други по-разширени употреби на обекти. Използвайки примера, предоставен с cx_Oracle за демонстриране на вмъкването на геометрия, следният код ще трансформира създадения по този начин обект в JSON. Функцията ObjectRepr(), включена по-долу, трябва да работи за всеки обект, върнат от Oracle. Той просто чете метаданните на обекта и го превръща в речник на атрибути или списък със стойности.

import cx_Oracle
import json

connection = cx_Oracle.Connection("user/[email protected]")
typeObj = connection.gettype("SDO_GEOMETRY")
cursor = connection.cursor()
cursor.execute("""
        select Geometry
        from TestGeometry
        where IntCol = 1""")
obj, = cursor.fetchone()

def ObjectRepr(obj):
    if obj.type.iscollection:
        returnValue = []
        for value in obj.aslist():
            if isinstance(value, cx_Oracle.Object):
                value = ObjectRepr(value)
            returnValue.append(value)
    else:
        returnValue = {}
        for attr in obj.type.attributes:
            value = getattr(obj, attr.name)
            if value is None:
                continue
            elif isinstance(value, cx_Oracle.Object):
                value = ObjectRepr(value)
            returnValue[attr.name] = value
    return returnValue

print("JSON:", json.dumps(ObjectRepr(obj)))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връзка с агрегирани низове в Oracle 10g

  2. Функцията add_months на oracle се различава от Java

  3. импортиране на дъмп файл в oracle 11gr2 получава грешки

  4. IDE за разработка на Pl/SQL

  5. проблем с производителността:разлика между select s.* срещу select *