问题
I'm unable to initialize point cloud in Oracle Database 12c.
Trying to execute following commands:
CREATE TABLE point_clouds(
id NUMBER,
capture_ts TIMESTAMP,
point_cloud SDO_PC
);
CREATE TABLE pc_blocks AS select * from mdsys.sdo_pc_blk_table;
INSERT INTO point_clouds (id, point_cloud) VALUES (
1001,
sdo_pc_pkg.init(
basetable => 'point_clouds',
basecol => 'point_cloud',
blktable => 'pc_blocks',
ptn_params => 'blk_capacity=10000',
pc_extent => mdsys.sdo_geometry(
2003,
8307,
null,
mdsys.sdo_elem_info_array(1, 1003, 3),
mdsys.sdo_ordinate_array(289020.90, 4320942.61, 290106.02, 4323641.57)
),
pc_tol => 0.05,
pc_tot_dimensions => 3
)
);
However, got this error on INSERT:
Error report:
SQL Error: ORA-13249: Error creating dml trigger
ORA-06512: at "MDSYS.SDO_PC_PKG", line 96
ORA-06512: at line 1
13249. 00000 - "%s"
*Cause: An internal error was encountered in the extensible spatial index
component. The text of the message is obtained from some
other server component.
*Action: Contact Oracle Support Services with the exact error text.
What is wrong with that INSERT statement?
回答1:
I was stuck on this for ages, and finally solved it by creating the point_clouds table using MDSYS.sdo_pc instead of sdo_pc.
CREATE TABLE point_clouds(
id NUMBER,
capture_ts TIMESTAMP,
point_cloud MDSYS.SDO_PC
);
来源:https://stackoverflow.com/questions/35253216/unable-to-initialize-point-cloud-ora-13249-error-creating-dml-trigger