尝试使用NVL时的Oracle java异常()

时间:2012-08-20 10:24:13

标签: oracle

我在Oracle中有以下SQL语句让我头疼。我试图返回一个空的几何,如果Oracle表中保存的值为null,但它只是失败,出现以下错误:

错误

*

  

ORA-29532:Java调用因未捕获的Java异常而终止:   java.lang.NullPointerException ORA-06512:at“MDSYS.SDO_UTIL”,line   2421 ORA-06512:在“MDSYS.SDO_UTIL”,第2443行ORA-06512:at   “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'

有人知道这里出了什么问题吗?我不是Oracle开发者,所以任何帮助都会得到赞赏和解释。

1 个答案:

答案 0 :(得分:1)

这里的问题是由行

引起的
  

TO_CHAR(A.CLUSTER_EXTENT.GET_WKT()),

这一行试图从返回的列中获取一个众所周知的文本项,因为我们没有提供有效的文本项,所以它失败了。奇怪的错误真的。