无法在Spatialite WKB插入语句中使用cx_Oracle LOB

时间:2015-03-06 13:38:13

标签: python sqlite python-2.7 cx-oracle spatialite

我有一些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)

0 个答案:

没有答案