0

我有一些 Python 代码从 Oracle 空间中选择数据并插入到 Spatialite。我的问题是光标包含二进制的几何图形,我不知道如何将二进制文件读入 Spatialite 插入语句。如果我使用 WKT,只是为了添加这一切,但某些几何图形太长,因此是二进制格式的原因。

有人可以帮忙吗?

# Import system modules
import cx_Oracle
from pyspatialite import dbapi2 as sl_db

def db_connect():
    # Build connect from TNS names
    o_db = cx_Oracle.connect("xxxxx", "xxxxx", "xxxxx_gl_dev")
    cursor = o_db.cursor()
    return cursor

def db_lookup(cursor):
    # Select records
    sql = "SELECT sdo_util.to_wkbgeometry(a.shape), a.objectid FROM span a WHERE a.objectid = 1382372"

    cursor.execute(sql)
    row = cursor.fetchall()
    return row

def db_insert(row):
    # Insert Rows in new spatailite table
    database_name = 'C:\\Temp\\MYDATABASE.sqlite'
    db_connection = sl_db.connect(database_name)
    db_cursor = db_connection.cursor()
    sql = 'INSERT INTO "SPAN_OFL" ("geometry", "OBJECTID") Values GeomFromWKB(?,27700),?);'
    db_cursor.executemany(sql, row)
    db_connection.commit()
    db_connection.close()

# main code
cursor = db_connect()
row = db_lookup(cursor)
db_insert(row)
4

0 回答 0