Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để chuyển đổi SDO_GEOMTRY trong GeoJSON

Điều này đang sử dụng phiên bản (chưa được phát hành) của cx_Oracle hỗ trợ ràng buộc các đối tượng và các cách sử dụng nâng cao hơn khác của các đối tượng. Sử dụng mẫu được cung cấp với cx_Oracle để chứng minh việc chèn hình học, đoạn mã sau sẽ chuyển đổi đối tượng được tạo theo cách đó thành JSON. Hàm ObjectRepr () bao gồm bên dưới sẽ hoạt động cho bất kỳ đối tượng nào được trả về từ Oracle. Nó chỉ đơn giản là đọc siêu dữ liệu về đối tượng và biến đối tượng thành từ điển các thuộc tính hoặc danh sách các giá trị.

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. Làm thế nào để mở rộng vị trí thập phân của một số đến mức tối thiểu trong Oracle PLSQL?

  2. mẫu tên không hợp lệ khi cố gắng chuyển ánh xạ đối tượng loại oracle tùy chỉnh

  3. Đặt Thời gian chờ Mạng cho kết nối JDBC

  4. Cách tạo hàm PL / SQL trong cơ sở dữ liệu Oracle

  5. Đếm số lượng giá trị trên mỗi id