Internal or fatal error during SDO_CS.TRANSFORM using ntv2 grid shift
402929Mar 17 2009 — edited Mar 20 2009Hi
I' m using oracle Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 -
I need to configure a SDO_CS.TRANSFORM from srid 3003 to 32632 using a grid shift in ntv2 format i prepared using data from IGMI (italian geodetic agency).
My grid works fine using Esri ArcGis projection tools.
So i created new SDO_COORD_OPS and new SDO_COORD_OP_PARAM_VALS and set the prefered operation for datum my datum conversion.
Then i tried to load the grid file in the param value both in the binary and ASCII version of the but al the conversions causes an internal or fatal error!
I tryed using SDO_CS.convert_NTv2_to_XML for populating the xml value but it always crash!
Is it a version bug? Have i problems with my instance?
Where am i wrong?
My scripts are:
______________________________________________
Insert into SDO_COORD_OPS(COORD_OP_ID, COORD_OP_NAME, COORD_OP_TYPE, SOURCE_SRID, TARGET_SRID,COORD_TFM_VERSION, COORD_OP_VARIANT, COORD_OP_METHOD_ID, UOM_ID_SOURCE_OFFSETS, UOM_ID_TARGET_OFFSETS,INFORMATION_SOURCE, DATA_SOURCE, SHOW_OPERATION, IS_LEGACY, LEGACY_CODE,REVERSE_OP, IS_IMPLEMENTED_FORWARD, IS_IMPLEMENTED_REVERSE)
Values
(
bq. 1000000999 -- COORD_OP_ID, \\ ,'Roma40 to WGS 84 via IGM GRID' -- COORD_OP_NAME, \\ , 'TRANSFORMATION' -- COORD_OP_TYPE, \\ , 4265 -- SOURCE_SRID geografiche roma 40, \\ , 4326 -- TARGET_SRID geografiche wgs84, \\ ,NULL -- COORD_TFM_VERSION, \\ , 1 -- COORD_OP_VARIANT, \\ , 9615 -- COORD_OP_METHOD_ID, NTV2 \\ , NULL -- UOM_ID_SOURCE_OFFSETS, \\ , NULL -- UOM_ID_TARGET_OFFSETS, \\ ,NULL -- INFORMATION_SOURCE, \\ , 'IGMI' -- DATA_SOURCE, \\ , 1 -- SHOW_OPERATION, \\ , 'FALSE' -- IS_LEGACY, \\ , NULL -- LEGACY_CODE, \\ , 1 -- REVERSE_OP, \\ , 1 -- IS_IMPLEMENTED_FORWARD \\ , 1 -- IS_IMPLEMENTED_REVERSE
);
Insert into SDO_COORD_OP_PARAM_VALS(COORD_OP_ID, COORD_OP_METHOD_ID, PARAMETER_ID, PARAMETER_VALUE, PARAM_VALUE_FILE_REF, PARAM_VALUE_FILE, PARAM_VALUE_XML, UOM_ID )
Values(
bq. 1000000999 COORD_OP_ID \\ , 9615 ,COORD_OP_METHOD_ID NTV2 \\ , 8656 --,PARAMETER_ID Latitude and longitude difference file \\ , NULL --,PARAMETER_VALUE \\ , '&RM40WGS84_FILE' --,PARAM_VALUE_FILE_REF \\ , NULL --,PARAM_VALUE_FILE \\ , NULL --,PARAM_VALUE_XML \\ , NULL --,UOM_ID
);
execute sdo_cs.add_preference_for_op(1000000999 ,4265 ,4326);
DECLARE
Src_loc BFILE;
Dest_loc CLOB;
ACTUAL_FILE_NAME VARCHAR2(128);
BEGIN
--ACTUAL_FILE_NAME := 'R40WGS.asc';
ACTUAL_FILE_NAME := 'R40WGS.gsb';
Src_loc := BFILENAME('ORAGR_DIR', ACTUAL_FILE_NAME);
DBMS_LOB.OPEN(Src_loc, DBMS_LOB.LOB_READONLY);
UPDATE MDSYS.SDO_COORD_OP_PARAM_VALS
SET
PARAM_VALUE_FILE = EMPTY_CLOB()
WHERE
COORD_OP_ID = 1000000999
AND PARAMETER_ID = 8656
RETURNING PARAM_VALUE_FILE INTO Dest_loc;
DBMS_LOB.OPEN(Dest_loc, DBMS_LOB.LOB_READWRITE);
DBMS_LOB.LOADFROMFILE(Dest_loc, Src_loc, DBMS_LOB.LOBMAXSIZE);
DBMS_LOB.CLOSE(Dest_loc);
DBMS_LOB.CLOSE(Src_loc);
DBMS_LOB.FILECLOSE(Src_loc);
END;
_____________________________________________________________________
SELECT MDSYS.SDO_CS.DETERMINE_CHAIN(NULL, NULL, 3003, 32632) FROM DUAL;
results in
MDSYS.TFM_PLAN(MDSYS.SDO_TFM_CHAIN(3003,-1,4265,1000000999,4326,-3,32632))
that's OK!
The trace of the error is:
_______________________________________________________________
/oracle10g/app/oracle/admin/GESTIONE/udump/gestione_ora_22281.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle10g/app/oracle/product/10.2.0
System name: Linux
Node name: tst-gestagg.csi.it
Release: 2.6.9-42.ELsmp
Version: #1 SMP Wed Jul 12 23:32:02 EDT 2006
Machine: x86_64
Instance name: GESTIONE
Redo thread mounted by this instance: 1
Oracle process number: 52
Unix process pid: 22281, image: oracle@tst-gestagg.csi.it
*** 2009-03-16 12:33:56.541
*** ACTION NAME:() 2009-03-16 12:33:56.534
*** MODULE NAME:(SQL Developer) 2009-03-16 12:33:56.534
*** SERVICE NAME:(SYS$USERS) 2009-03-16 12:33:56.534
*** SESSION ID:(117.4197) 2009-03-16 12:33:56.534
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x2aca9d6640, PC: [0x509090a, mdtxepsg_read_clob_NTv2()+2052]
*** 2009-03-16 12:33:56.547
ksedmp: internal or fatal error
ORA-07445: trovata eccezione: dump della memoria [mdtxepsg_read_clob_NTv2()+2052] [SIGSEGV] [Address not mapped to object] [0x2ACA9D6640] [] []
Current SQL statement for this session:
SELECT
a.COD_RILIEVO
,a.SUPERFICIE
, a.MSLINK
, a.MAPID
, a.COORD_EST
, a.COORD_NORD
, a.DATA_AGG
, a.F_STATO
, a.CIT_AR
, a.CIT_PATR_TO
,SDO_CS.TRANSFORM(
mdsys.sdo_geometry(
a.GEOMETRIA.sdo_gtype
,3003
,a.GEOMETRIA.SDO_POINT
,a.GEOMETRIA.SDO_ELEM_INFO
,a.GEOMETRIA.SDO_ORDINATES
)
,32632
) GEOMETRIAWGS
, a.FK_CENTROIDE
, a.FK_TEMA1
FROM CARTOGRAFIA_A a
where a.fk_tema1=12
----- PL/SQL Call Stack -----
object line object
handle number name
0xbc773018 79 package body MDSYS.SDO_CS
0xbc773018 116 package body MDSYS.SDO_CS
0xbc773018 2690 package body MDSYS.SDO_CS
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)