DB2 12 - Rules for inserting data into a ROWID column


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES, Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 12 - Regras para inserir dados em uma coluna ROWID - Rules for inserting data into a ROWID column

Uma coluna ROWID contém valores exclusivos que identificam cada linha em uma tabela.
Se você pode inserir dados em uma coluna ROWID e como esses dados são inseridos depende de como a coluna é definida.
A ROWID column contains unique values that identify each row in a table.
Whether you can insert data into a ROWID column and how that data gets inserted depends on how the column is defined.

Uma coluna ROWID é uma coluna definida com um tipo de dados ROWID. Você deve ter uma coluna com um tipo de dados ROWID em uma tabela que contém uma coluna LOB.
A coluna ROWID é armazenada na tabela base e é usada para consultar os dados LOB reais no espaço de tabela LOB.
Além disso, uma coluna ROWID permite que você escreva consultas que navegam diretamente para uma linha em uma tabela.
Para obter informações sobre como usar colunas ROWID para acesso direto à linha, consulte Specifying direct row access by using row IDs.

A ROWID column is a column that is defined with a ROWID data type. You must have a column with a ROWID data type in a table that contains a LOB column.
The ROWID column is stored in the base table and is used to look up the actual LOB data in the LOB table space.
In addition, a ROWID column enables you to write queries that navigate directly to a row in a table.
For information about using ROWID columns for direct-row access, see Specifying direct row access by using row IDs.

Antes de inserir dados em uma coluna ROWID, você deve saber como a coluna ROWID é definida.
As colunas ROWID podem ser definidas como GENERATED ALWAYS ou GENERATED BY DEFAULT.
GENERATED ALWAYS significa que o Db2 gera um valor para a coluna e você não pode inserir dados nessa coluna.
Se a coluna for definida como GENERATED BY DEFAULT, você pode inserir um valor e Db2 fornecerá um valor padrão se você não fornecer um.

Before you insert data into a ROWID column, you must know how the ROWID column is defined.
ROWID columns can be defined as GENERATED ALWAYS or GENERATED BY DEFAULT.
GENERATED ALWAYS means that Db2 generates a value for the column, and you cannot insert data into that column.
If the column is defined as GENERATED BY DEFAULT, you can insert a value, and Db2 provides a default value if you do not supply one.

Exemplo: - Example:

Suponha que as tabelas T1 e T2 tenham duas colunas: uma coluna inteira e uma coluna ROWID.
Para que a instrução a seguir seja executada com êxito, ROWIDCOL2 deve ser definido como GENERATED BY DEFAULT.
Suppose that tables T1 and T2 have two columns: an integer column and a ROWID column.
For the following statement to run successfully, ROWIDCOL2 must be defined as GENERATED BY DEFAULT.

   INSERT INTO T2 (INTCOL2,ROWIDCOL2)
          SELECT * FROM T1;

Se ROWIDCOL2 for definido como GENERATED ALWAYS, você não pode inserir os dados da coluna ROWID de T1 em T2, mas pode inserir os dados da coluna inteira.
Para inserir apenas os dados inteiros, use um dos seguintes métodos:
If ROWIDCOL2 is defined as GENERATED ALWAYS, you cannot insert the ROWID column data from T1 into T2, but you can insert the integer column data.
To insert only the integer data, use one of the following methods:

  • Especifique apenas a coluna inteira em sua instrução INSERT, como na seguinte instrução:
    Specify only the integer column in your INSERT statement, as in the following statement:
       INSERT INTO T2 (INTCOL2)
              SELECT INTCOL1 FROM T1;
  • Especifique a cláusula OVERRIDING USER VALUE em sua instrução INSERT para dizer ao Db2 para ignorar quaisquer valores que você fornecer para colunas geradas pelo sistema, como na seguinte instrução:
    Specify the OVERRIDING USER VALUE clause in your INSERT statement to tell Db2 to ignore any values that you supply for system-generated columns, as in the following statement:
       INSERT INTO T2 (INTCOL2,ROWIDCOL2) OVERRIDING USER VALUE
              SELECT * FROM T1;

Parent topic: Inserting rows by using the INSERT statement



© Copyright IBM Corp.