Le funzioni dell pacchetto DBMS_LOB in Oracle
May 5th, 2006 | by Enrico |I campi di tipo LOB in Oracle non possono essere trattati come delle stringhe, un esmpio classico non si può utilizzare la funzione lenght(campoBLOB) per vedere la dimensione del campo, a tal proposito oracle viene fornito con un pacchetto le cui funzioni vado a spiegare di seguito:
Funzione COMPARE:
Permette di confrontare due campi di tipo lob, essa restituisce 0 se in due combaciano. Una restrizione per questa funzione è l’obbligo di confrontare soltanto i campi dello stesso tipo, i CLOB con i CLOB, i BLOB con BLOB ed i BFILE con i BFILE.
dbms_lob.compare(campo_1, campo_2, quanti_byte, offSet_1, offSet2);
Funzione COPY:
Copia il contenuto di un campo lob, o parte di esso, in un altro. Si può specificare lo scostamento iniziale sia del sorgente che del destinatario, è inoltre possibile indicare quanti byte copiare.
DBMS_LOB.COPY(destinazione, sorgente, quanti_byte, dest_offset, sorg_offset);
Funzione FILEEXISTS:
Ci si può immaginare a che cosa serva, ma non è niente di più sbagliato, infatti questa funzione serve a controlare su un puntatore ad un file punta ad un file effettivamente esistente.
dbms_lob.fileexists(file_loc)
dove file_loc è un putantore (locator) al file.
Funzione FILEISOPEN:
Stesse modalità della precedente, controlla che un puntatore ad un file sia aperto, se fosse chiuso il collegamento non è detto che il file non sia aperto da un’altro puntatore.
dbms_lob.fileisopen(file_loc)
Funzione GETLENGHT:
Restituisce il numero di byte di cui è composto il valore inserito nel campo LOB
select dbms_lob.length(campo_lob) from tabella
Funzione INSTR:
Molto simile alla funzione instr per le stringhe impementata in SQL standard, con la differenza che maneggia i file di tipo LOB. Può essere specificato il punto di partenza (in byte) da cui cominciare a cercare e permette anche di indicare quale delle occorrenze, cioè ad esempio voglio sapere in che posizione si trova la 3 volta che compare la parola “aiuto” nel mio campo CLOB.
select dbms_lob.instr(campo_lob,’aiuto’,0,3) from tabella
Funzione SUBSTR:
Identica a come si utilizza in SQL Standard.
La funzione substr può essere utile anche per altri scopi ad esempio per convertire un dato CLOB in formato stringa (CHAR/VARCHAR2)
SELECT DBMS_LOB.SUBSTR (campo_CLOB, 30, 1) FROM tabella
Dove il primo parametro è il nome della colonna in formato CLOB, il secondo è la lunghezza della stringa che vogliamo ottenere e il terzo è l’offset da cui partiamo.
Tags: blob, funzione, funzioni, HowTo, LOB, oracle, RAM, SQL, tabella, valore, varchar
