Reglas y restricciones de LOB

Esta sección proporciona detalles sobre las reglas y restricciones de LOB.

Reglas para columnas LOB

Las columnas LOB tienen las siguientes reglas y restricciones:

  1. No puede especificar un LOB como columna de clave principal.
  2. Oracle Database tiene soporte limitado para LOB remotos. Los LOB remotos se admiten de tres maneras.
    • Crear tabla como selección o insertar como selección.

      CREATE TABLE t AS 
        SELECT
        FROM   table1@remote_site; 
        
      INSERT INTO
      SELECT
      FROM   table1@remote_site; 
        
      UPDATE
      SET    lobolm = (SELECT lobclm 
                       FROM   table1@remote_site); 
        
      INSERT INTO table1@remote_site 
      SELECT
      FROM   local_table; 
    • Funciones en LOB remotos que devuelven escalares. Se admiten las funciones SQL y PL/SQL que tienen un parámetro LOB y devuelven un tipo de datos escalar. No se admite el uso de otras funciones SQL y API DBMS_LOB con columnas LOB remotas. Por ejemplo, se admite la siguiente instrucción:

      CREATE TABLE tab AS 
        SELECT dbms_lob.Getlength@dbs2(clob_col) len 
        FROM   tab@dbs2; 
        
      CREATE TABLE tab AS 
        SELECT Length(clob_col) len 
        FROM   tab@dbs2; 

      Además, la siguiente declaración no es compatible porque DBMS_LOB.SUBSTR devuelve un LOB:

      CREATE TABLE tab AS 
        SELECT dbms_lob.Substr(clob_col) 
        FROM   tab@dbs2; 
    • Interfaz de datos para LOB remotos. Puede insertar un búfer binario o de caracteres en un BLOB o CLOB remoto y seleccionar un CLOB o BLOB remoto en un búfer binario o de caracteres. Por ejemplo (en PL/SQL):

      SELECT clobcol1, 
             type1.blobattr 
      INTO   varchar_buf1, 
             raw_buf2 
      FROM   table1@remote_site;INSERT INTO table1@remotesite 
                  
                              clobcol1, 
                              type1.blobattr 
                  
                  VALUES varchar_buf1, 
                  raw_buf2;INSERT INTO table1@remotesite 
                  
                              lobcol 
                  
                  VALUES 
                  
                              'test' 
                  );UPDATE table1 
      SET    lobcol = 'xxx';

      Estas son las únicas sintaxis admitidas que involucran LOB en tablas remotas. No se admite ningún otro uso.

  3. Los clústeres no pueden contener LOB, pueden contener columnas clave o no clave .
  4. Las estructuras de datos definidas a continuación solo se admiten como instancias temporales . No puede almacenar estas instancias en tablas de bases de datos:
    • VARRAY de cualquier tipo LOB
    • VARRAY de cualquier tipo que contenga un tipo LOB, como un tipo de objeto con un atributo LOB
    • ANYDATA de cualquier tipo LOB
    • ANYDATA de cualquier tipo que contenga un LOB
  5. No puede especificar columnas LOB en la cláusula GROUP BY de una consulta, en la cláusula ORDER BY de una consulta o en una función agregada.
  6. No puede especificar una columna LOB en una declaración SELECT… UNIQUE o SELECT… DISTINCT o en una combinación. Puede especificar un atributo LOB de una columna de tipo de objeto en una consulta que utiliza el operador de conjunto UNION o MINUS o en una sentencia SELECT… DISTINCT si el tipo de objeto de la columna tiene definida una función MAP u ORDER BY.
  7. La primera extensión ( INICIAL ) de un segmento LOB debe contener al menos tres bloques de base de datos.
  8. Al crear un activador DML AFTER UPDATE , no puede especificar una columna LOB en la cláusula UPDATE OF .
  9. No puede definir una columna LOB como parte de una clave de índice. Sin embargo, puede especificar una columna LOB en la especificación de tipo de índice de un índice de dominio.
  10. En una operación INSERT… AS SELECT , LOB le permite vincular hasta 4000 bytes de datos a atributos y columnas LOB.
  11. Si una tabla contiene columnas LONG y LOB, no puede vincular más de 4000 bytes de datos a las columnas LONG y LOB en la misma instrucción SQL, mientras que puede vincular más de 4000 bytes de datos a LONG o LOB. columna.

Publicación traducida automáticamente

Artículo escrito por ShubhamMaurya3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *