Existen dos métodos que podrían usarse para acceder y modificar los valores LOB:
- Uso de la interfaz de datos para LOB
- Uso del localizador de LOB para acceder/modificar valores de LOB
Uso de la interfaz de datos para LOB
Puede realizar operaciones de vinculación y definición en columnas BLOB y CLOB en aplicaciones C utilizando la interfaz de datos para LOB. Le permite insertar o seleccionar datos en una columna LOB sin utilizar un localizador de LOB de la siguiente manera:
- Con la ayuda de la variable de vinculación asociada con una columna LOB para insertar datos de caracteres en un CLOB o datos RAW en un BLOB.
- La operación de definición se utiliza para definir un búfer de salida en su aplicación que contiene datos RAW seleccionados de un BLOB o datos de caracteres seleccionados de un CLOB.
Uso del localizador de LOB para acceder/modificar valores de LOB
Se puede acceder al valor de una instancia de LOB que se almacena en la base de datos a través de un localizador de LOB, una referencia a la ubicación del valor de LOB. Las tablas de la base de datos almacenan solo localizadores en las columnas CLOB, BLOB, NCLOB y BFILE. A continuación se muestran los puntos importantes con respecto a los localizadores y valores de LOB:
- Para manipular o acceder a un valor de LOB, puede pasar el localizador de LOB a las distintas API de LOB.
- Un localizador de LOB se puede asignar o reasignar fácilmente a cualquier instancia de LOB del mismo tipo.
- Las características de un LOB como temporal o persistente no tienen nada que ver con el localizador. Las características de temporal o persistente solo son aplicables a la instancia LOB.
Localizadores LOB y localizadores BFILE
Existen pocas diferencias entre la semántica de los localizadores para los tipos LOB CLOB, NCLOB y BLOB por un lado, y la semántica de los localizadores para el tipo BFILE por otro lado:
- Para los tipos de LOB CLOB, NCLOB y BLOB, la columna LOB almacena un localizador en el valor LOB. Cada instancia de LOB tiene su propia copia distinta del valor de LOB y también un localizador de LOB distinto.
- Para las columnas BFILE inicializadas, la fila almacena un localizador en el archivo del sistema operativo externo que contiene el valor de BFILE. Cada instancia de BFILE en una fila determinada tiene su propio localizador distinto; sin embargo, dos filas diferentes pueden contener un localizador BFILE que apunte al mismo archivo del sistema operativo.
Independientemente de dónde se almacene el valor de un LOB, se almacena un localizador en la fila de la tabla de cualquier columna LOB inicializada. Siempre que el término localizador se utilice sin un prefijo de identificación, se refiere tanto a los localizadores LOB como a los localizadores BFILE. Además, cada vez que selecciona un LOB de una tabla, el LOB devuelto siempre es un LOB temporal. Para obtener más información sobre cómo trabajar con localizadores para LOB temporales, consulte «LOB devueltos desde funciones SQL».
Tabla print_media La tabla print_media
de Oracle Database Sample Schema PM, se usa como muchos ejemplos y se define como:
CREATE TABLE print_media ( product_id NUMBER(6), ad_id NUMBER(6), ad_composite BLOB, ad_sourcetext CLOB, ad_finaltext CLOB, ad_fltextn NCLOB, ad_textdocs_ntab textdoc_tab, ad_photo BLOB, ad_graphic BFILE, ad_header adheader_typ ) NESTED TABLE ad_textdocs_ntab STORE AS textdocs_nestedtab;
Publicación traducida automáticamente
Artículo escrito por ShubhamMaurya3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA