用戶定義的數據類型插入值有自己的Oracle數據類型喜歡通過cx_Oracle
CREATE TYPE lids_geomtype AS OBJECT(
type NUMBER (6),
source_type NUMBER (4)
);
我可以讀取該數據類型的cx_Oracle。這是expample:
sql = 'SELECT geomtype FROM poly_gr where id = 4034'
cur.execute(sql)
data = cur.fetchall()
geom = data[0][0]
print type(geom)
print geom.TYPE, geom.SOURCE_TYPE
print geom.type
************** Result is *****************
<type 'cx_Oracle.OBJECT'>
1002.0 6.0
<cx_Oracle.ObjectType TARGET.LIDS_GEOMTYPE>
但我有問題,由cx_Oracle INSERT。
sql = 'INSERT INTO poly (geomtype) VALUES (:1)'
cur.execute(sql,"TARGET.LIDS_GEOMTYPE(1002,6)")
上面的代碼是錯誤的,因爲數據類型不是VARCHAR2。你能告訴我如何創建cx_Oracle.ObjectType TARGET.LIDS_GEOMTYPE插入?
sql = 'INSERT INTO poly (geomtype) VALUES (%s)' %"TARGET.LIDS_GEOMTYPE(1002,6)"
cur.execute(sql)
如下所述的代碼是可以的。但是我會在下一步使用executemany(),並且有必要的變量。
你試過實例'cx_Oracle.OBJECT'? – filmor 2015-04-02 09:39:13
我不知道如何從準備數據創建'cx_Oracle.OBJECT'。這是我的問題。 – filippoo 2015-04-02 10:52:17