Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment interroger les données d'énormesblobs

DBMS_LOB.substr() est la bonne fonction à utiliser. Assurez-vous que la colonne contient des données.

Exemple d'utilisation :

-- create table
CREATE TABLE myTable (
id INTEGER PRIMARY KEY,
blob_column BLOB
);

-- insert couple of rows
insert into myTable values(1,utl_raw.cast_to_raw('a long data item here'));
insert into myTable values(2,null);

-- select rows
select id, blob_column from myTable;

ID  BLOB_COLUMN
1   (BLOB)
2   null

-- select rows
select id, DBMS_LOB.substr(blob_column, 1000,1) from myTable;

ID  DBMS_LOB.SUBSTR(BLOB_COLUMN,1000,1)
1   61206C6F6E672064617461206974656D2068657265
2   null

-- select rows
select id, UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.substr(blob_column,1000,1)) from myTable;

ID  UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(BLOB_COLUMN,1000,1))
1   a long data item here
2   null