GDAL: Auto register /scratch/gdal/gdal-3.7.0/dist/lib64/gdalplugins/ gdal_JP2OpenJPEG.so using GDALRegister_JP2OpenJPEG. GDAL: Auto register /scratch/gdal/gdal-3.7.0/dist/lib64/gdalplugins/gdal_GEOR. so using GDALRegister_GEOR. GDAL: Auto register /scratch/gdal/gdal-3.7.0/dist/lib64/gdalplugins/ogr_OCI.so using RegisterOGROCI. Warning 1: tgrcb1.tif: TIFFReadDirectory:Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. GDAL: GDALOpen(tgrcb1.tif, this=0x2412370) succeeds as GTiff. PL/SQL: SELECT T.grobj.RASTERDATATABLE, T.grobj.RASTERID, extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="ROW"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="COLUMN"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="BAND"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/cellDepth', 'xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/spatialReferenceInfo/ SRID','xmlns="http://xmlns.oracle.com/spatial/georaster"') FROM grtab T WHERE grobj IS NOT NULL ORDER BY T.grobj.RASTERDATATABLE ASC, T.grobj.RASTERID ASC GDAL: GDALOpen(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) succeeds as GeoRaster. GDAL: GDALClose(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) GDAL: QuietDelete(geor:herman/vampire@cdb1_pdb1,grtab,grobj) invoking Delete() GTiff: ScanDirectories() Warning 1: TIFFReadDirectory:Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. GDAL: GDALDefaultOverviews::OverviewScan() PL/SQL: SELECT T.grobj.RASTERDATATABLE, T.grobj.RASTERID, extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="ROW"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="COLUMN"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/dimensionSize[@ type="BAND"]/size','xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/rasterInfo/cellDepth', 'xmlns="http://xmlns.oracle.com/spatial/georaster"'), extractValue(t.grobj.metadata, '/georasterMetadata/spatialReferenceInfo/ SRID','xmlns="http://xmlns.oracle.com/spatial/georaster"') FROM grtab T WHERE grobj IS NOT NULL ORDER BY T.grobj.RASTERDATATABLE ASC, T.grobj.RASTERID ASC GDAL: GDALOpen(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) succeeds as GeoRaster. GDAL: GDALClose(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) GDAL: QuietDelete(geor:herman/vampire@cdb1_pdb1,grtab,grobj) invoking Delete() GDAL: GDALOpen(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) succeeds as GeoRaster. PL/SQL: DECLARE TAB VARCHAR2(68) := UPPER('grtab'); COL VARCHAR2(68) := UPPER('grobj'); OWN VARCHAR2(68) := UPPER('herman'); CNT NUMBER := 0; BEGIN EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TABLES WHERE TABLE_NAME = :1 AND OWNER = UPPER(:2)' INTO CNT USING TAB, OWN; IF CNT = 0 THEN EXECUTE IMMEDIATE 'CREATE TABLE grtab (grobj MDSYS.SDO_GEORASTER)'; SDO_GEOR_UTL.createDMLTrigger( TAB, COL ); END IF; END; PL/SQL: DECLARE TAB VARCHAR2(68) := UPPER('grtab'); COL VARCHAR2(68) := UPPER('grobj'); OWN VARCHAR2(68) := UPPER('herman'); CNT NUMBER := 0; GR1 SDO_GEORASTER := NULL; BEGIN INSERT INTO grtab VALUES(5, sdo_geor.init('rdt_1', 5)) RETURNING grobj INTO GR1; GR1.spatialExtent := NULL; SELECT GR1.RASTERDATATABLE INTO :rdt FROM DUAL; SELECT GR1.RASTERID INTO :rid FROM DUAL; EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_OBJECT_TABLES WHERE TABLE_NAME = :1 AND OWNER = UPPER(:2)' INTO CNT USING :rdt, OWN; IF CNT = 0 THEN EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TABLES WHERE TABLE_NAME = :1 AND OWNER = UPPER(:2)' INTO CNT USING :rdt, OWN; END IF; IF CNT = 0 THEN EXECUTE IMMEDIATE 'CREATE TABLE '||:rdt||' ( RASTERID NUMBER, PYRAMIDLEVEL NUMBER, BANDBLOCKNUMBER NUMBER, ROWBLOCKNUMBER NUMBER, COLUMNBLOCKNUMBER NUMBER, BLOCKMBR SDO_GEOMETRY, RASTERBLOCK BLOB, CONSTRAINT '||:rdt||'_RDT_PK PRIMARY KEY (RASTERID, PYRAMIDLEVEL, BANDBLOCKNUMBER, ROWBLOCKNUMBER, COLUMNBLOCKNUMBER)) LOB(RASTERBLOCK) STORE AS SECUREFILE(CACHE)'; END IF; SDO_GEOR.createTemplate(GR1, 21001, 'dimSize=(448,503,7) blockSize=(512, 512, 1) cellDepth=8BIT_U interleaving=BIP compression=NONE', null, 'TRUE'); UPDATE grtab T SET grobj = GR1 WHERE T.grobj.RasterDataTable = :rdt AND T.grobj.RasterId = :rid; EXECUTE IMMEDIATE 'SELECT T.grobj.METADATA.getClobVal() FROM grtab T WHERE T.grobj.RASTERDATATABLE = UPPER(:1) AND T.grobj.RASTERID = :2' INTO :metadata USING :rdt, :rid; END; GDAL: GDALClose(geor:herman/vampire@cdb1_pdb1,grtab,grobj, this=0x270c000) PL/SQL: BEGIN IF :datatable IS NOT NULL AND :rasterid IS NOT NULL THEN EXECUTE IMMEDIATE 'SELECT OWNER, TABLE_NAME, COLUMN_NAME FROM ALL_SDO_GEOR_SYSDATA WHERE RDT_TABLE_NAME = UPPER(:1) AND RASTER_ID = :2' INTO :owner, :table, :column USING :datatable, :rasterid; EXECUTE IMMEDIATE 'SELECT T.'||:column||'.METADATA.getClobVal() FROM '||:owner||'.'||:table||' T WHERE T.'||:column||'.RASTERDATATABLE = UPPER(:1) AND T.'||:column||'.RASTERID = :2' INTO :metadata USING :datatable, :rasterid; :counter := 1; ELSE EXECUTE IMMEDIATE 'SELECT T.'||:column||'.RASTERDATATABLE, T.'||:column||'.RASTERID, T.'||:column||'.METADATA.getClobVal() FROM '||:owner||'.'||:table||' T WHERE '||:where INTO :datatable, :rasterid, :metadata; :counter := 1; END IF; EXCEPTION WHEN no_data_found THEN :counter := 0; WHEN too_many_rows THEN :counter := 2; END; GDAL: GDALOpen(georaster:herman,vampire,cdb1_pdb1,RDT_1,5, this=0x270c000) succeeds as GeoRaster.