1

Oracleに次のSQLステートメントがあり、頭痛の種になっています。Oracleテーブルに保持されている値がnullの場合、空のジオメトリを返そうとしていますが、次のエラーで失敗します。

エラー

*

ORA-29532:Java呼び出しがキャッチされないJava例外によって終了しました:java.lang.NullPointerException ORA-06512:「MDSYS.SDO_UTIL」の2421行目ORA-06512:「MDSYS.SDO_UTIL」の2443行目ORA-06512:「MDSYS .SDO_GEOMETRY "、36行目

*

コード

select CLUSTER_ID, 
       NUM_POINTS, 
       FEATURE_PK, 
       A.CELL_CENTROID.SDO_POINT.X, 
       A.CELL_CENTROID.SDO_POINT.Y, 
       A.CLUSTER_CENTROID.SDO_POINT.X, 
       A.CLUSTER_CENTROID.SDO_POINT.Y,
       TO_CHAR (A.CLUSTER_EXTENT.GET_WKT ()),  
       TO_CHAR (A.CELL_GEOM.GET_WKT ()), 
       A.CLUSTER_EXTENT.SDO_SRID, 
       TPHS_PHASE_ID 
from (SELECT CLUSTER_ID, 
             NUM_POINTS, 
             FEATURE_PK, 
             SDO_CS.transform (CLUSTER_CENTROID, 4326) cluster_centroid, 
             SDO_CS.TRANSFORM(NVL(CLUSTER_EXTENT, MDSYS.SDO_GEOMETRY(2001,4326 ,MDSYS.SDO_POINT_TYPE(NULL,NULL,NULL),NULL,NULL)),4326) CLUSTER_EXTENT , 
             SDO_CS.transform (CELL_CENTROID, 4326) cell_centroid, CELL_GEOM FROM              
             V_CLUSTER_1000M) a  
 LEFT JOIN  RWOL_TMA_ROADWORKS 
 ON a.FEATURE_PK = RWOL_TMA_ROADWORKS.TPHS_PHASE_ID   
 where sdo_filter( A.CELL_GEOM, SDO_CS.transform(mdsys.sdo_geometry(2003,4326, NULL, mdsys.sdo_elem_info_array(1,1003,3),mdsys.sdo_ordinate_array(-25.43623984375,44.257784519021, 21.62918984375, 60.752403080295)),81989)) = 'TRUE'

誰かがここで何がうまくいかないのか分かりましたか?私はオラクルの開発者ではないので、説明だけでなく助けていただければ幸いです。

4

1 に答える 1

1

ここでの問題は回線によって引き起こされました

TO_CHAR(A.CLUSTER_EXTENT.GET_WKT())、

この行は、返された列から既知のテキストアイテムを取得しようとしていますが、有効なテキストアイテムを提供していないため、失敗しています。本当に奇妙なエラー。

于 2012-08-20T11:04:08.167 に答える