一連の結果をエクスポートに戻すために、Oracleテーブルに対して実行しようとしている次のステートメントがあります。
SELECT
a.CLUSTER_ID,
SDO_CS.transform(a.CELL_GEOM, 4326).GET_WKT() CELL_GEOM,
SDO_CS.transform(a.CELL_CENTROID, 4326).GET_WKT() CELL_CENTROID,
SDO_CS.transform(a.CLUSTER_CENTROID, 4326).GET_WKT() CLUSTER_CENTROID,
a.NUM_POINTS,
a.FEATURE_PK,
SDO_CS.transform(a.CLUSTER_EXTENT, 4326).GET_WKT() CLUSTER_EXTENT
FROM HIGHWAYS.CLUSTER_128000M a
データセットに対してこれを実行すると、次のエラーが発生します。
ORA-06531: Reference to uninitialized collection
ORA-06512: at "MDSYS.SDO_CS", line 2553
ORA-06512: at "MDSYS.SDO_CS", line 2678
これは、データベースの一部のフィールドが空である可能性があるという事実が原因です(私は信じています)。これを考慮に入れて、フィールドが空の場合に変換を適用しようとしないようにコードを変更するにはどうすればよいですか?コードが実行されたら、SQL Serverにエクスポートします。SQLServerは変換で役に立たないため、データをOracleのWGS84(27700)に格納されているため、データをコピーする前にOracleに適用しています。後でSQLServerから取得します。